欢迎访问我的网站:omegaxyz.com
每个Python脚本在运行时都有一个“name”属性。如果脚本作为模块被导入,则其“name”属性的值被自动设置为模块名;如果脚本独立运行,则其“name”属性值被自动设置为“main”。例如,假设文件nametest.py中只包含下面一行代码:
print(name)
在IDLE中直接运行该程序时,或者在命令行提示符环境中运行该程序文件时,运行结果如下:
main
而将该文件作为模块导入时得到如下执行结果:
import nametest
Nametest
利用“name”属性即可控制Python程序的运行方式。例如,编写一个包含大量可被其他程序利用的函数的模块,而不希望该模块可以直接运行,则可以在程序文件中添加以下代码:
if name == ‘main’:
print(‘Please use me as a module.’)
这样一来,程序直接执行时将会得到提示“Please use me as a module.”,而使用import语句将其作为模块导入后可以使用其中的类、方法、常量或其他成员。
附:编写自己的包与模块
在包的每个目录中都必须包含一个init.py文件,该文件可以是一个空文件,仅用于表示该目录是一个包。
init.py文件的主要用途是设置all变量以及所包含的包初始化所需的代码。其中all变量中定义的对象可以在使用from …import *时全部正确导入。