文章目录
介绍
__name__
是一个在 Python 中特殊的内置变量,用于确定一个 Python 文件是被直接运行还是被导入为模块。文件作为模板导入,则其 __name__属性值被自动设置为模块名
文件作为程序直接运行,则__name__属性属性值被自动设置为字符串"main"
代码
下面是一个详细介绍 __name__
用法的示例代码,带有详细的注释:
python
# 定义一个简单的函数
def my_function():
print("这是一个函数!")
# 如果脚本是被直接运行的,__name__ 的值将是 '__main__'
if __name__ == '__main__':
print("这个脚本正在直接运行。")
# 在这里可以添加任何您想要在直接运行时执行的代码
# 调用定义的函数
my_function()
# 如果脚本是被导入为模块的,__name__ 的值将是模块的名称(在导入时由 Python 解释器分配)
else:
print("这个脚本被用作一个模块。")
# 在这里可以添加任何您希望在脚本被导入时执行的代码
# 注意:在此处定义的代码将在脚本直接运行或作为模块导入时执行,具体取决于 __name__ 的值。
解释如下:
-
首先,定义了一个简单的函数
my_function()
,它将打印一条消息。 -
使用
if __name__ == '__main__':
来检查__name__
的值是否为'__main__'
。如果是,表示脚本正在直接运行,所以在这个条件下的代码块将会执行。 -
在
if __name__ == '__main__':
下,您可以放置您希望在脚本直接运行时执行的代码。 -
然后,检查
__name__
是否等于模块的名称。如果脚本被导入为模块,__name__
的值将是模块的名称,否则,如果脚本是直接运行的,__name__
的值将是'__main__'
。 -
在
else:
分支下,您可以放置希望在脚本被导入为模块时执行的代码。
使用 __name__
的这种方式可以使您的脚本更具可重用性,因为它可以在不同的上下文中执行不同的代码块,同时避免重复执行不需要的代码。