导入函数时如何防止执行 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)