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

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

相关推荐
dapeng28707 小时前
Django全栈开发入门:构建一个博客系统
jvm·数据库·python
暴躁网友w7 小时前
UKF-IMM 与粒子滤波 IMM:计算效率 Matlab 仿真对比
开发语言·matlab
PNP Robotics7 小时前
PNP机器人分享Frankal机器人等具身案例开发和实践
大数据·python·学习·机器人·开源
IT猿手7 小时前
基于控制障碍函数(CBF)的多无人机编队避障路径规划研究,MATLAB代码
开发语言·matlab·无人机·路径规划·动态路径规划
于慨7 小时前
java Web
java·开发语言·前端
麦麦鸡腿堡7 小时前
JavaWeb_maven
java·开发语言·maven
sin°θ_陈7 小时前
CVPR 2026的3DGS卷到什么地步?工程语义上探:BrepGaussian如何打通图像到CAD的最后一公里?(Part III 1-3)
python·深度学习·算法·机器学习·3d·webgl
IT猿手7 小时前
基于四旋翼无人机离散建模与增量PID控制及轨迹跟踪研究,MATLAB代码
开发语言·matlab·无人机·cocos2d·路径规划·动态路径规划
Du_chong_huan7 小时前
《网络是怎样连接的》精读版 第六章总述
开发语言·php
Fairy要carry7 小时前
面试-Agent如何压缩上下文
python