Python脚本的“__name__”属性

欢迎访问我的网站: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 *时全部正确导入。

你可能感兴趣的:(python,徐奕的专栏,python基础与应用)