Pythonname有什么用
在Python程序中,你会经常看到__name__,例如:if __name__ == "__main__": main()
本文将介绍如何正确使用和理解这个变量。
请注意,__name__在程序中是一个变量,只不过这个变量的命名有点奇怪,用双下划线开头和结尾。这种命名的方法,在Pyhton的类对象设计中,常常用于一些具有特殊作用的属性或者方法名称[2]。
如果将编写的一个Python文件,即.py为扩展名的文件,作为模块被其他程序引入的时候,我们需要通过__name__这个变量,决定在引入的时候是否要运行该文件。
例如创建一个文件namescript.py,内容如下:def my_function(): print("the value of __name__ is " + __name__) def main(): my_function() if __name__ == "__main__": main()
如果执行namescript.py文件,其执行流程如下:
在程序中的代码被执行之前,Python解析器先给__name__变量赋值为__main__。然后逐行执行程序中的代码。注意,当执行到第7行的时候,判断__name__的值是否为__main__,如果条件为真,就执行main()这个前面自定义的函数,并最终打印出结果。
如果将namescript.py文件作为一个模块,在另外一个文件中引入,例如在名为importingscript.py的文件中,有代码:import namescript as ns ns.my_function()
这样,就在importingscript.py文件中使用了namescript.py文件中定义的函数my_function。如此,避免了重复代码,而且提升了开发效率。这是Python语言的重要特点。
如果执行importscript.py文件,其流程如下图所示:
在importscript.py中,变量__name__被赋值为__main__,然后执行import namescript,Python解析器会自动在模块名字后面增加.py并在检索目录中查找该文件——所以,在引入模块的时候不要写成import namescript.py。找到了,就引入该文件中的所有代码。
然后,将namescript.py文件所运行的空间中的__name__设置为namescript。结合上图,在importingscript.py和namescript.py中,分别有两个同名的__name__变量,但是,它们的值不同。如此,在namescript.py中,因为__name__的值是namescript了,于是该文件中的if __name__ == "__main__"条件不再成立,所以此条件下的main()函数不再执行。
在importingscript.py中,调用了namescript.my_function(),打印的结果是:the value of __name__ is namescript,这里的__name__当然是namescript.py中的变量。
如果在importingscript.py中,增加print(__name__),打印出来的结果应该是__main__。
新型探测器可实现高速量子通信新型探测器由硅芯片上的32根氮化铌超导纳米线制成,可实现高精度的高计数率。来源RyanLannom,JPLCaltechNASA研究人员开发了一种新型探测器,可以以非常高的速率精确
180亿公里外,探测器遭遇5万度火墙,人类被锁死在太阳系内?在阅读此文前,麻烦您点击一下关注,既方便您进行讨论与分享,又给您带来不一样的参与感,深度长文,希望您能够认真看完,感谢您的支持!探索宇宙是人类走出地球之后的终极梦想,当人类走出地球
人类首次月背采样返回,欧空局撕毁协议后,嫦娥六号是否继续合作前段时间,欧洲航天局局长约瑟夫阿施巴赫近日对外公开表示目前没有将欧洲航天员送到新建设完成的中国天宫空间站的计划,该机构既没有预算能力,也没有政治意图将其宇航员送往中国空间站。但是阿
因为宇宙一片漆黑,所以地球才有昼夜之分,宇宙为什么是黑的?头条创作挑战赛地球为何会有昼夜之分?乍一看,这个问题很是简单,当然是因为地球一直在自自转了,当地球的一部分被太阳照射时就是白昼,而当这一面因自转背对太阳时就进入了黑夜。其实,自转只
还记得挑战者号吗1986年1月28日上午1139,原定于从佛罗里达州卡纳维拉尔角(肯尼迪发射中心)例行发射的挑战者号航天飞机在飞行仅73秒后爆炸,机上七名美国人全部遇难。这场灾难震惊了全国,并导致
罕见绿彗星将与地球擦肩而过一颗曾在石器时代与地球擦肩而过的罕见绿色彗星将于2月2日归来。这颗彗星名为C2022E3,由美国兹威基瞬态研究设施在2022年3月首次发现。它大部分时间处于太阳系最外围的奥尔特云(
A股节后(1月30日2月3日)股市走势简析,两大因素是关键!隔夜美PCE数据利好加持下,欧美股市继续上涨,A股休市一周,外围整体环境还是呈现出了暖春气息!那么在加息周VS兔年首秀的大背景下,下周A股将何去何从?又有哪些机会可以上车呢?按照以
平顶山卫东农商行节后开工忙大象新闻记者王甜甜河南广电融媒体记者罗聪文图视频视频加载中大娘,您今天过来办理什么业务?您坐那儿等待一下,我帮您取个号。1月29日,在平顶山卫东农村商业银行(以下简称卫东农商银行)
潮家发现看家装72变卫生间防滑,地砖就选这六种视频加载中编者按潮家发现看家装72变是由红网家居携手金空间装饰策划推出的一档视频类原创居家学装修栏目,每期根据室内不同功能分区,学装修,看家装如何72变。专题潮家发现看家装72变通
乡镇卫生院何去何从刚看到一篇文章说区县级电视台处境尴尬,没人看。其实,乡镇卫生院也尴尬,也是没有人看。小病去村里的药铺诊所。大病去县医院市医院。县医院市医院人满为患,停车一位难求。看病的人多的时候,
春晚三位女主持龙洋马凡舒王嘉宁,你看好谁?2023年春晚主持人已经官宣任鲁豫撒贝宁尼格买提龙洋马凡舒王嘉宁。您会更喜爱谁的风格?这个组合,也呈现出有趣的年龄搭配任鲁豫46岁,撒贝宁47岁,尼格买提40岁,龙洋34岁,马凡舒