我写了2个python脚本。
first.py一个包含如下两个函数:
def function1():
'''do somethong'''
def function2():
'''do something'''
print("Outside of the functions in first.py")
我已将上述两个函数从first.py导入到second.py,如下所示:
from first import function1,function2
def function3():
'''do something with func1 & func2'''
print("Outside of the function in second.py")
当我运行second.py时,即使我单独导入funcion1和function2,它也会运行整个first.py脚本。
我得到如下输出:
Outside of the functions in first.py
Outside of the function in second.py
为什么要从这两个函数之外的first.py打印打印语句?如何避免这种情况,请帮忙。
答案 0 :(得分:2)
即使您使用import
在python中使用from ... import ...
时,它也会运行整个模块,两种导入方式的唯一区别是要导入的名称。
为了确保导入时不需要的模块代码,请将其包装在if __name__ == '__main__':
块中。
__name__
由python设置,并设置为模块名称(直接执行时除外),然后将其设置为__main__
。