每个模块都有一个名字,在模块中的语句能够找出它所在的模块的名字。这对于搞清楚模块是否正在运行或被导入这样的特殊用途是很方便的。正如前面提到的,当一个模块被第一次导入时,其所包含的代码被执行。我们可以通过使用这个,根据模块是否被自己使用或从另一个模块被导入,使模块以不同的方式起作用,这些可以通过使用模块的 __name__属性来实现。
例子 (保存为 using_name.py):
if __name__ == '__main__': print('这个程序正在被自己运行') else: print('我从别的模块被导入')
输出结果:
$ python3 using_name.py
这个程序正在被自己运行
$ python3
>>> import using_name
我从别的模块被导入
>>>
它是如何工作的:
每个Python模块有其__name__ 定义,如果是__name__ ,这意味着模块在被用户独立的运行,我们可以采取适当的行动。