导入函数时如何防止执行 main Python 代码
How to prevent execution of main Python code when importing a function
考虑以下两个文件:
test.py:
import sys
def testfunction(string):
print(string)
sys.exit(0)
test2.py:
from test import testfunction
testfunction("string")
我希望 testfunction 的导入不会执行该函数之外的语句,例如 sys.exit(0)。为什么会发生这种情况,我该如何预防?
很简单:
# test.py
import sys
def testfunction(string):
print(string)
if __name__ == "__main__":
sys.exit(0)
魔术变量 __name__
设置为模块名称(当文件作为模块导入时)或设置为 "__main__"
当它作为脚本执行时。
把你不想执行的都放在条件下
if __name__ == '__main__':
...
sys.exit(0)
考虑以下两个文件:
test.py:
import sys
def testfunction(string):
print(string)
sys.exit(0)
test2.py:
from test import testfunction
testfunction("string")
我希望 testfunction 的导入不会执行该函数之外的语句,例如 sys.exit(0)。为什么会发生这种情况,我该如何预防?
很简单:
# test.py
import sys
def testfunction(string):
print(string)
if __name__ == "__main__":
sys.exit(0)
魔术变量 __name__
设置为模块名称(当文件作为模块导入时)或设置为 "__main__"
当它作为脚本执行时。
把你不想执行的都放在条件下
if __name__ == '__main__':
...
sys.exit(0)