认识一个不一样的python代码if __name__ == ‘__main__‘:

因为是自己看书学习python,所有经常会因为一个小的问题被卡很长时间,比如今天这个代码

if __name__ == '__main__':

特别要注意的是name前后的下划线是两个,后面main前后的下划线也是两个!!!!

在Python中,‌if __name__ == '__main__': 是一种常见的模式,‌用于判断一个Python文件是直接运行还是被导入作为模块使用。‌

每个Python模块(‌即Python文件)‌都包含一个内置变量__name__,‌当这个文件被直接运行时,‌__name__的值会被设置为__main__。‌如果文件被导入到其他模块中,‌__name__的值则会被设置为该文件的模块名(‌不包含.py后缀)‌。‌因此,‌通过检查__name__的值,‌可以决定是否执行某些代码。‌

具体来说,‌如果一个Python文件包含if __name__ == '__main__':的代码块,‌那么当这个文件被直接运行时,‌该代码块内的代码会被执行。‌但是,‌如果这个文件被导入到另一个Python文件中,‌那么该代码块内的代码将不会被执行。‌这种机制常用于控制脚本的入口点,‌确保脚本在被直接运行时执行特定的操作,‌而在被导入时则不执行这些操作。‌

通过代码来看一下吧

def hanshu():
    print('你好呀')
if __name__ == '__main__':
    hanshu()
    print('是的,我很好')

输出结果是

你好呀
是的,我很好

进程已结束,退出代码为 0

如果没有if__name__='__main__' 前面的hanshu()也不会真正执行,也就是说这个代码是负责运行程序的,类似于print

另外的解释

if __name__ == '__main__'的作用和原理

最简单的理解就是这样:

    __name__ 是当前模块名,当模块被直接运行时,模块名为 __main__。

1、所以 if __name__ == '__main__' 这句话的意思就是当前模块被直接运行时,以下代码将被执行,

2、当模块是被其它程序导入时,代码块不会被执行。

举例,比如新建了一个叫text.py的文件,写入如下代码

print('测试程序--函数外')

def main():
    print('测试程序--函数内')

if __name__ == '__main__':
    main()
    print('hello world')

输出结果是

测试程序--函数外
测试程序--函数内
hello world

举例证明2,还是上面这个text.py,在这个文件的同目录下新建另外一个py文件,里面写入如下代码

import test

输出结果是

测试程序--函数外

秒懂Python编程中的if __name__ == 'main' 的作用和原理 (qq.com)

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值