2013-03-12 5 views
-3

예를 들어 myscript.py라는 파일이 있다고 가정 해 봅시다.명령 줄에서 파이썬 프로그램의 함수를 호출하는 방법

이 파일에는 다음 코드가 포함되어 있습니다.

foo(var): 
    return var 

커맨드 라인에서 인수 var를 사용하여 함수 foo를 어떻게 호출 할 수 있습니까?

나는 myscript.py 디렉토리에 들어가서 입력 할 수 있다는 것을 알고있다.

>>> python myscript.py 

myscript.py를 실행합니다. 유일한 문제는 myscript.py가 실행될 때 자동으로 foo를 호출하지 않는다는 것입니다.

나는 나를 위해 작동하지 않는

if __name__ == "__main__": 
    foo() 

를 사용하여 시도했다. 웬일인지 내가 할 때 아무 일도 일어나지 않는다. 오류 메시지가 나타나지 않고 아무 것도 호출되지 않습니다.

+0

Return은 호출자에게 반환합니다. 무슨 일이 일어날 것으로 예상됩니까? –

+0

'foo'가 호출되고 있습니다. 너는 단지 a) 그것에 아무것도 전달하지 않고 b) 아무것도하지 않는다. argifse 또는'sys'를 사용하여 cli의 입력을 처리하고자 할 것입니다. – TyrantWave

+0

"아무것도 호출되지 않았습니다"라는 것을 어떻게 알 수 있습니까? 귀하의 예제에서 귀하는 귀하의 기능이 반환하는 모든 것을 폐기합니다. –

답변

2

생성하지 않았기 때문에 출력이 나오지 않습니다. print를 호출보십시오 :

def foo(var): 
    print(var) 

if __name__ == '__main__': 
    foo('Hello, world') 
+0

고맙습니다. – Jake

0

당신은 명령 줄에서 인수를 전달하기 위해 sys 모듈을 사용합니다. 이 작업을 수행 할 수 있습니다 python myscript.py 3 는, 예를 들어 인수로 제공 :

import sys 

def foo(var): 
    return var 

if __name__ == '__main__': 
    # arguments check 
    if len(sys.argv) != 2: 
    print "USAGE: %s <value>" % sys.argv[0] 
    sys.exit(1) 

    # get the agument so as to use it to the function call 
    arg = sys.argv[1] 

    # call the function using this argument 
    val = foo(arg) 

    # print the returned value 
    print val 

그런 다음이 명령하여 파이썬 스크립트를 실행할 수 있습니다 숫자 3

관련 문제