모듈로 실행하거나 실행할 필요가없는 독립적 인 파일로 실행할 수있는 프로그램이 있습니다.인터프리터가 함수의 기본 인수를 확인하는 것을 피하려면 어떻게해야합니까?
가져 오기 할 때 import_location = /Users/Documents/etc
과 같은 폴더에있는 줄을 포함하는 'globalSettings.py'파일을 가져와야합니다. __main__
으로 실행하면 필요하지 않습니다. 괜찮
try:
import globalSettings
except ImportError:
print("Being run as independent program")
:
그래서, 내 코드의 시작 부분에, 나는 다음 있습니다.
main 함수를 호출하면 독립적으로 실행되는 경우 관련 설정을 직접 전달하고 외부 모듈로 실행되는 경우 사용되는 기본값을 사용합니다.
def test_func(foo, bar=globalSettings.import_location):
do stuff
나는 다음과 같이 호출 :
이
은 MCVE입니다if __name__ == "__main__":
test_func(20, "Users/myname/testfolder/etc")
을 내가 test_func(30)
처럼, 다른 곳에서 가져올 때, 그리고 그것은 globalSettings에서 bar
을 찾을 수 있습니다.
Traceback (most recent call last):
File "/Users/tomburrows/Dropbox/Python Programming/import_test.py", line 1, in <module>
def test_func(foo, bar=globalSettings.import_location):
NameError: name 'globalSettings' is not defined
, 그것은 단지 그것을 필요로 할 것이다 : 그러나, 독립적으로 실행하면 오류가 발생합니다 가져 오기로 실행할 때, 내가 그곳에 globalSettings 파일이 있는지 확인합니다.
어쨌든 내가 겪고있는 오류를 무시할 수 있습니까?
프로그램에서 둘 이상의'if __name__ == "__main __":'을 가질 수 있습니다. 그래서이 함수를 사용하여 두 가지 다른 방식으로 함수를 정의 할 수 있습니다. 즉,'test_func()'의 두 정의 중 하나를 추가하여 적절한 경우 기본값을 다른 것으로 만든다. – martineau