导入函数时如何防止执行主Python代码

时间:2018-02-22 15:04:23

标签: python python-import

考虑以下两个文件:

test.py:

import sys

def testfunction(string):
    print(string)

sys.exit(0)

test2.py:

from test import testfunction

testfunction("string")

我希望导入testfunction不要执行该函数之外的语句,例如sys.exit(0)。为什么会发生这种情况,我该如何预防呢?

2 个答案:

答案 0 :(得分:2)

很简单:

# test.py
import sys

def testfunction(string):
    print(string)

if __name__ == "__main__":
    sys.exit(0)

魔术变量__name__设置为模块名称(当文件作为模块导入时)或"__main__"作为脚本执行时。

答案 1 :(得分:0)

把你想做的所有事情都放在

的条件下
if __name__ == '__main__':
    ...
    sys.exit(0)