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 ':

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

相关推荐
程序员阿鹏7 分钟前
分布式事务管理
java·开发语言·分布式
未来之窗软件服务7 分钟前
JAVASCRIPT 离线解析IP地址 幽冥大陆(七十) —东方仙盟练气期
开发语言·javascript·tcp/ip·仙盟创梦ide·东方仙盟
山沐与山7 分钟前
【设计模式】Python工厂模式与依赖注入:FastAPI的Depends到底在干嘛
python·设计模式·fastapi
爱学大树锯8 分钟前
【594 · 字符串查找 II】
java·开发语言·算法
zhixingheyi_tian9 分钟前
Yarn 之 run job
java·开发语言·前端
2501_9167665414 分钟前
【Java】代理模式---静态代理与动态代理
java·开发语言·代理模式
写代码的【黑咖啡】14 分钟前
Python常用数据处理库全解析
开发语言·python
缺点内向20 分钟前
Java:轻松实现 Excel 文档属性添加
java·开发语言·excel
2401_8414956422 分钟前
【Python高级编程】图着色动态可视化 APP
python·算法·matplotlib·tkinter·回溯法·图着色算法·动态可视化工具
刺客xs33 分钟前
c++多线程 线程池的实现
开发语言·c++