2017-03-22 4 views
1

내 fabfile.py에는 다음이 포함되어 있습니다. 이제는 명료하고 이해하기 위해 fab 명령으로 실행할 때 sum() 함수에서 반환 값을 수집하는 방법이 있는지 이해하고 싶습니다.반환 값은

팹 합계는, X = 10, Y는 I은 /는 상기 명령의 출력을 수집 참조 어떻게 그래서

= 20?

+0

껍질에서 어디서보고 싶습니까? 그 결과를 리턴하지 않고'sum' 값을 출력했다면 그 출력을 쉘이 캡쳐 할 수 있습니다. 올바르게 조정하기 위해하려는 일에 대해 조금 더 알고있는 것이 도움이 될 수 있습니다. – YellowShark

+0

쉘에서 꺼내는 것은 단순히 인쇄하는 것임을 이해합니다. 그러나 파이썬 스크립트에서 다른 함수 안에서 함수를 호출하기를 원한다고 가정 해 봅시다. 이제 총액을 호출 함수에 반환해야합니다. 가능한 한 어떻게 달성 할 수 있습니까? – qre0ct

답변

1

패브릭의 기본 용도를 이해하는 것이 중요합니다. 원격 서버에서 작업을 실행하는 것입니다. 반환 값은이 사실을 중심으로합니다. 여기

패브릭 작업에서 반환 값을 보여 스크립트의 단순화 된 버전입니다 :

from fabric.api import execute 

# function that take arguments and returns something 
def sum(x=0, y=0): 
    sum = x + y 
    return sum 

# using execute to simulate the `fab <command>` command-line usage 
result = execute(sum, x=5, y=10) 
print(result) 

결과입니다 작업 실행 호스트에 의해 키가 사전 :

{'<local-only>': 15} 

하는 경우를 이 작업을 여러 원격 서버에서 실행하면 다음과 같이 보입니다.

result = execute(sum, x=5, y=10, hosts=['host-1', 'host-2']) 
print(result) 
{'host-1': 15, 'host-2': 15} 

따라서이 sum() 함수를 서로 호출 할 수있는 더 광범위한 함수의 일부로 사용하려는 경우 result 값에서 적절한/원하는 키에 액세스하기 만하면됩니다.