1.1 如果导入的模块除了定义函数之外还中有可以执行代码,那么Python解释器在导入这个模块时就会执行这些代码。
module1.py:
def foo():
print('module 1')
foo()
test.py:
import module1
# from module1 import foo
# 打印出module 1
1.2 模块编写的目的是被调用;一般来说,不是主程序入口;假如直接运行该模块,使用if __name__ == '__main__':
module1.py:
def foo():
print('module')
# __name__是Python中一个隐含的变量它代表了模块的名字
# 只有被Python解释器直接执行的模块的名字才是__main__
if __name__ == '__main__':
foo()
test.py:
# 导入module3时 不会执行模块中if条件成立时的代码 因为模块的名字是module3而不是__main__
import module1
from module1 import foo