首页 / 知识
Python之有妙用的__name__属性
2023-11-12 13:35:00
前面说了,py文件分两种:用于执行的程序文件和用于导入的模块文件。当直接使用pythona.py的时候表示a.py是用于执行的程序文件,通过import/from方式导入的py文件是模块文件。
__name__属性用来区分py文件是程序文件还是模块文件:
当文件是程序文件的时候,该属性被设置为__main__
当文件是模块文件的时候(也就是被导入时),该属性被设置为自身模块名
换句话说,__main__表示的是当前执行程序文件的默认模块名,想必学过其他支持包功能的语言的人很容易理解:程序都需要一个入口,入口程序所在的包就是main包,在main包中导入其它包来组织整个程序。python也是如此,只不过它是隐式自动设置的。
对于python来说,因为隐式自动设置,该属性就有了特殊妙用:直接在模块文件中通过if__name__=="__main__"来判断,然后写属于执行程序的代码,如果直接用python执行这个文件,说明这个文件是程序文件,于是会执行属于if代码块的代码,如果是被导入,则是模块文件,if代码块中的代码不会被执行。
显然,这是python中非常方便的单元测试方式。
例如,写一个模块文件,里面包含一个函数,用来求给定序列的最大值和最小值:
defminmax(func,*args):
res=args[0]
forarginargs[1:]:
iffunc(arg,res):
res=arg
returnres
deflessthan(x,y):returnx defgreatethan(x,y):returnx>y #测试代码 if__name__=="__main__": print(minmax(lessthan,3,6,2,1,4,5)) print(minmax(greatethan,3,6,2,1,4,5)) 以上内容为大家介绍了Python之有妙用的__name__属性,希望对大家有所帮助,如果想要了解更多Python相关知识,请关注我们
最新内容
相关内容
Python实现批量文件的压缩处理
Python实现批量文件的压缩处理,项目,信息,分析,数据,软件,培训,文件夹,文件,源文件,目标,一、前言接到项目求助,需要对上千个文件夹中的文件进Python 3.6 中针对文件系统的神奇
Python 3.6 中针对文件系统的神奇方法,数字,代码,数据,标准,信息,培训,首次,工作,文件名,常数,Python3.6首次发布于2016年,尽管它已经发布了很为何你的Python代码应是扁平与稀疏
为何你的Python代码应是扁平与稀疏的,代码,培训,信息,观察,设计,工具,嵌套,闻闻,程序员,沉思,Python之禅之所以得名,正是由于它那简明扼要的规Python 之模块重载的五种方法
Python 之模块重载的五种方法,环境,培训,方法,模块,文件夹,例子,下面,内容,语句,请看,python环境准备新建一个foo文件夹,其下包含一个bar.py文优化 Python 程序的内存占用
优化 Python 程序的内存占用,代码,数据,情况,培训,对象,字典,内存,垃圾,程序,机制,Python的垃圾回收机制通过引用计数来决定一个对象要不要被如何提速优化python代码?
如何提速优化python代码?,代码,时间,数据,新增,写法,包装,情况,下来,面临,工作,Python是一种脚本语言,相比C/C++这样的编译语言,在效率和性能方Python如何在后台自动解压各种压缩
Python如何在后台自动解压各种压缩文件?,代码,综合,工具,分析,检测,培训,文件,文件夹,模块,结尾,一、需求描述编写一个Python程序,每次下载压Python 模块之输入不可见的密码
Python 模块之输入不可见的密码,密码,系统,情况,公共,位置,信息,电子,网上,认证,培训,密码对程序员来说尤其重要。你不应该在不加密的情况下Python处理文件的几个常用小知识
Python处理文件的几个常用小知识,数据,代码,信息,文件,系统,培训,分析,交通,名称,名字,python这门语言有个很大的用途就是使用它来进行文件处用Python来自动化处理文件
用Python来自动化处理文件,数据,代码,模具,时间,文件,电脑,投入,工具,培训,项目,当代码投入生产时,你需要去组织代码的文件。读写、创建和运行python经典最短代码实现排序的功能
python经典最短代码实现排序的功能,代码,位置,数据,分析,时间,序列,元素,培训,下来,算法,冒泡排序:算法思想:1.比较相邻的元素,如果第一个比第二Python标准库之collections模块
Python标准库之collections模块,名字,标准,信息,电话号码,培训,工厂,位置,简介,异常,对象,collections模块简介collections是Python标准库里