如果你想知晓python中if __name__ == '__main__'是干嘛用的,请往下滑!!!看到第五节!!!
一、其它语言的主函数
如果你写过java,就一定知道这个!
如果你写过C,那你一定知道int main()
int main()
{
printf("Hello World");
return();
}
二、python真的有main主函数吗
写python就简单多了,大部分人肯定是0帧起手,直接print()。
print("Hello World")
如果你python练习时长超过2周半,那你一定见过第三节!!!!!
三、Github和AI代码中出现无数if __name__ == '__main__'
不管是教程中,还是github上的示例,gpt写的代码,全都是if __name__ == '__main__'。
看起来很像C/C++,java里面的入口main函数。
可是python不是不需要入口函数吗?
那这个出现的意义在哪里?
这是多此一举吗?
四、看看__name__这个变量是个啥
print(__name__)这个变量发现,不管放在程序的哪个位置,都是'__main__'这个值。
那这个判断有什么意义呢?
无论何时都可以进入条件!
五、if __name__ == '__main__'真实用法
要搞清楚什么时候不等于,不进入下面判断
if __name__ == '__main__'
那需要先了解一下py代码可以怎么样执行,黄金以上选手肯定了解py文件就是一个模块。
运行后可以发现,import导入一个模块后,模块内的代码会直接运行
那我们顺势来看看这个hello导入后,这边输出print(__name__)是什么吧!
它变了,变成了文件名,那这时候是不是就不等于'__main__',
所以这个if __name__ == '__main__'是用来判断,当前文件代码是否能够被直接运行!
没错!那这样的话
运行方式 | __name__ |
xxx.py | '__main__' |
import xxx | 'xxx' |
当文件直接运行时,文件中的__name__都是'__main__';
当文件是导入运行时,文件中的__name__是文件名;
那有什么用呢???
对于一些既需要直接运行,又需要作为模块调用的代码,加入if __name__ == '__main__'就非常有必要了!
运行hello.py文件
运行test_1.py文件
两者效果显而易见,通过 if __name__ == '__main__':,你可以确保一些代码仅在该 Python 文件作为主程序执行时运行,而在作为模块导入时不会执行。
这样做可以避免在导入时执行不必要的代码。
每天学习一个小技巧!!!
能力提升显而易见!
智者不惑仁者不忧!!!