发布时间:2024-06-15 15:01
原标题:一文掌握 __name__ 变量和在Python中的用法
在研究Python代码时,你可能经常会看到__name__变量。下面是一个示例代码:
if__name__ == \'__main__\':
main
下面,我们将向你展示如何使用这个变量在Python中创建模块。
为什么使用__name__变量?
__name__变量(前后两个下划线)是一个特殊的Python变量。它的值取决于我们如何执行包含它的脚本。
有时候,在编写的脚本中包含的函数可能在其他脚本中也很有用。在Python中,你可以将该脚本作为模块导入到另一个脚本中。
由于这个特殊的变量,你可以决定是否要运行脚本。或者希望导入脚本中定义的函数。
__name__变量包含哪些值?
运行脚本时,__name__变量等于__main__。当你导入包含脚本时,它将包含脚本的名称。
让我们看一下这两个用法,并用两个例子描述这个过程。
场景1:运行脚本
假设我们编写的脚本name.py如下:
defmyFunction:
print\'The value of __name__ is \'+ __name__
defmain:
myFunction
if__name__ == \'__main__\':
main
如果你运行name.py,过程如下:
在运行所有其他代码之前,将__name__变量设置为__main__。然后,运行main和myFunctiondef声明。因为条件的值为true,所以调用main函数。反过来调用myFunction。打印出__main__的值。
场景2:在另一个脚本中导入脚本
如果我们想在另一个脚本中重用myFunction,例如importing.py。我们可以将namespace .py作为模块导入。
importing.py的代码如下:
importname asns
ns.myFunction
然后我们有两个作用域:一个是importing,另一个是name。在下图中,你会看到它与第一个例子的不同之处。
在importing.py中,将__name__变量设置为__main__。通过导入name,Python开始通过在模块名中添加.py来查找文件。然后运行导入文件中包含的代码。
但这次它被设置为name。再次运行main和myFunction的def语句。但是,现在条件计算为false,main未被调用。
在importing.py中,我们调用myFunction来输出name。myFunction在定义函数时知道Name。
如果你要在importing中打印__name__,那么将输出__main__。原因是Python使用了importing范围内已知的值。
总结
在这篇简短的文章中,我们解释了如何使用__name__变量来编写模块。你还可以自己运行这些模块进行测试和使用。返回搜狐,查看更多
责任编辑: