我已经看了很多关于这个的文章
if __name__ == '__main__'
Run Code Online (Sandbox Code Playgroud)
但没有得到..我将与您分享代码,请您简要介绍一下。
我创建了一个文件“ ab.py”
def a():
print('A function in ab file');
a()
Run Code Online (Sandbox Code Playgroud)
第二个文件是“ xy.py”
import ab
def b():
print('b function')
def x(): print ('s');
x()
if __name__ == "__main__" :b()
Run Code Online (Sandbox Code Playgroud)
当我执行此代码时,此输出即将到来
A function in ab file
s
b function
Run Code Online (Sandbox Code Playgroud)
现在,我想知道这是什么意思,实际上是在做什么代码,我们为什么要实现它?没有它,我们的代码也可以工作
if __name__ == "__main__" :b()
Run Code Online (Sandbox Code Playgroud)
您应该养成几乎总是使用它的习惯。
if __name__ == '__main__':
当您显式运行文件时,所有后续操作都将运行。
python myfile.py
Run Code Online (Sandbox Code Playgroud)
但是,如果您myfile.py
在其他地方导入:
import myfile
Run Code Online (Sandbox Code Playgroud)
什么if __name__ == '__main__':
都不会被调用。
下面是一个理解该语句的非常简单的示例:
假设我们有以下名为 using_name.py的python脚本:
# Filename: using_name.py
if __name__ == '__main__':
print 'This program is being run by itself'
else:
print 'I am being imported from another module'
Run Code Online (Sandbox Code Playgroud)
现在,尝试做以下两件事,看看会发生什么:
1)直接运行脚本
$ python using_name.py
Run Code Online (Sandbox Code Playgroud)
结果
This program is being run by itself
Run Code Online (Sandbox Code Playgroud)
2)导入脚本
$ python
import using_name
Run Code Online (Sandbox Code Playgroud)
结果
I am being imported from another module
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
15969 次 |
最近记录: |