刚学习Python时经常看到一段代码⬇️
if __name__ == '__main__'
通过知乎大佬的科普才明白
java、c、c++等编译性语言执行时会先将执行代码编译成中间代码,因此他们需要一个main函数入口;
而Python是一种解释性脚本语言,从顶部逐行进行翻译运行,所以最顶层的代码都会被执行,所以Python中并不需要main函数。从某种意义上讲if __name__ == '__main__'
是一个标志,用来告诉其他程序员这是代码的入口,这是if __name__ == '__main__'
的意义之一
__name__
是什么
__name__
是Python内置的属性,记录了一个字符串,
1.如果在当前文件中打印的是__main__
2.如果是引入的文件打印是文件的名字
分别在hello.py
和test.py
中打印__name__
,并在hello.py
引入test.py

因此可以通过
if __name__ == '__main__'
判断是否是在当前文件中
如何使用呢
接下来在test.py
中添加一些代码⬇️:
a = 10
print('我是test模块')
print(a)
在hello.py
添加代码print('我是hello模块')
接着在hello.py
引入test.py
后运行⬇️
我是test模块
10
我是hello模块
如果此时我不想在别人引入的时候打印a
怎么办
可以修改test.py
的代码:
a = 10
print('我是test模块')
if __name__ == '__main':
print(a)
再运行:
我是test模块
我是hello模块
用一句话概括:import文件内的if name = main不会执行,主程序内的代码if name = main会执行
网友评论