if __name__ == ‘__main__‘ 是个什么鬼?

有句话经典的概括了这段代码的意义:

"Make a script both importable and executable"

意思就是说让你写的脚本模块既可以导入到别的模块中用,另外该模块自己也可执行。

咋一看,其实我也不理解到底是个什么球意思,这里我们写两个Demo

test01.py

复制代码
#!/usr/bin/python
# -*- coding: UTF-8 -*-
# 导入模块
import test02


def show():
    print('test01')


if __name__ == '__main__':
    show()

test02.py

复制代码
#!/usr/bin/python
# -*- coding: UTF-8 -*-


def show():
    print('test02')


if __name__ == '__main__':
    show()

这里我们运行test01.py,会输出test01。

如果我们吧test02.py修改为:

复制代码
#!/usr/bin/python
# -*- coding: UTF-8 -*-


def show():
    print('test02')



show()

再次执行test01.py,它会输出test01 和 test02。

看到这里小伙伴应该明白了吧,在多模块编程的时候,一定要加入if name == 'main ':

这样一个判断,否则引入模块的方法也会被执行。

相关推荐
AllWe$20 分钟前
三、kafka消费的全流程
java·开发语言
tanyyinyu32 分钟前
Python函数参数详解:从位置参数到灵活调用的艺术
运维·开发语言·python
qq_2147826139 分钟前
mac下通过anaconda安装Python
python·macos·jupyter
小疯仔1 小时前
使用el-input数字校验,输入汉字之后校验取消不掉
android·开发语言·javascript
C_Liu_1 小时前
C语言:字符函数和字符串函数
c语言·开发语言
编程乐学(Arfan开发工程师)1 小时前
34、请求处理-【源码分析】-Model、Map原理
java·开发语言·spring boot·后端
Matlab仿真实验室1 小时前
基于Matlab实现LDA算法
开发语言·算法·matlab
誰能久伴不乏1 小时前
深度解析 Qt 最顶层类 QObject:继承关系与内存生命周期管理
开发语言·qt
多多*1 小时前
蓝桥杯国赛训练 day1
java·开发语言·数据库·redis·缓存·职场和发展·蓝桥杯
iCxhust2 小时前
Deepseek给出的8255显示例程
c语言·开发语言·c++·单片机·嵌入式硬件