python中的__name__使用

释义

if name == ‘main’:这句估计很多和我一样的初学者都是不求甚解。
这里作一下解释:

1._name_ 是一个变量(系统定义的变量)。前后加了爽下划线是因为是因为这是系统定义的名字。普通变量不要使用此方式命名变量。
2.Python有很多模块,而这些模块是可以独立运行的!这点不像C++和C的头文件。
3.import的时候是要执行import所对应的模块的。
name_就是标识模块的名字的一个系统变量。这里分两种情况:假如当前模块是主模块(也就是调用其他模块的模块),那么此模块名字就是__main_,通过if判断这样就可以执行__mian__:后面的主函数内容;假如此模块是被import的,则此模块名字为文件名字(不加后面的.py),通过if判断这样就会跳过__mian__后面的内容。

通过上面方式,python就可以分清楚哪些是主函数,进入主函数执行;并且可以调用其他模块的各个函数等等。
栗子

1 如果模块是被导入,__name__的值为对应的调用模块名字
2 如果模块是被直接执行,name__的值为__main

#py1.py
def test():
  print ('__name__ = ',__name__)

if __name__ == '__main__':
  test()
#py2.py
import py1

def test():
  print ('__name__ = ', __name__)
# 这一部分是def(定义)不会有什么输出

if __name__ == '__main__':   #判断当前是否为主函数
    test()                   # 是主函数 _name_=_main_
    print ('py1.py __name__ = ',py1.__name__)    #这里调用py1,py1不是主程序_name_=文件名

通过结果可以知道,py2.py直接执行,那么内建变量__name__的值为__main__,否则为模块的名字,通过这个特性可以在if语句里面添加测试代码,可以提高减少BUG,提高程序的健壮性。
[转自(https://www.cnblogs.com/jiumo/p/10478840.html)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值