全国旗舰校区

不同学习城市 同样授课品质

北京

深圳

上海

广州

郑州

大连

武汉

成都

西安

杭州

青岛

重庆

长沙

哈尔滨

南京

太原

沈阳

合肥

贵阳

济南

下一个校区
就在你家门口
+
当前位置:首页  >  技术干货  >  详情

Python之有妙用的__name__属性

来源:千锋教育
发布人:xqq
2023-11-07

推荐

在线提问>>

前面说了,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相关知识,请关注IT培训机构:千锋教育。


相关文章

python concat函数有何用法?

python里函数装饰器怎么使用?

如何实现python中的continue语句?

python中的冒泡排序是什么?

python中str函数是什么

开班信息 更多>>

课程名称
全部学科
咨询

HTML5大前端

Java分布式开发

Python数据分析

Linux运维+云计算

全栈软件测试

大数据+数据智能

智能物联网+嵌入式

网络安全

全链路UI/UE设计

Unity游戏开发

新媒体短视频直播电商

影视剪辑包装

游戏原画

    在线咨询 免费试学 教程领取