python入口函数的作用是_python中,函数名前后的双划线有什么作用?

展开全部

每一个module都有一个叫__name__的变量,它的值就是module的名字

比如os.__name__ 是"os",sys模块的62616964757a686964616fe58685e5aeb931333365636636__name__是"sys"

__main__也是一个模块,但是这个模块比较特殊,其他的模块都有一个对应的同名py文件,比如os.py, sys.py,这个模块却没有对应的固定名字的py文件,不管你执行 什么.py,它的名字都是__main__。它指的是正在运行的模块,即主模块。

上面说过,每个模块都有__name__这个变量, 那么主模块也不例外,主模块的__name__变量,值就是"__main__"

解释了半天,再说你的问题:__name__和name是两个不同的变量,__name__有定义而name没有定义,使用没有定义的变量就要出错,这没有什么好说的。

例如你写:

if name == '__main__':是一个变量未定义的错误

而当你写 if __name__ == 'main':的时候,由于__name__的值其实是'__main__',所以if的条件为假,不会执行你的代码。

最后,你可以自己写一点测试代码来探索这个问题,文件名就叫test.py,代码也很简单:print(__name__)

import test

输出有两行,第一行毫无疑问是__main__,第二行比较有意思,输出是test,因为此时test.py作为一个模块被import其__name__就是"test"。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值