Python中__name__属性的妙用

在Python中,每一个module文件都有一个built-in属性:__name__,这个__name__有如下特点:

1 如果这个module文件是被别的文件导入的,那么,该__name__属性的值就是这个module文件的名字;

2 如果这个module文件是被当成程序来执行,那么,该__name__属性的值就是"__main__"

 

因此,在很多Python代码中,__name__属性被用来区分上述module文件被使用的两种方式。一种常用的做法是将module文件自己的单测代码,放到__name__属性为"__main__"的情形中去。

比如,有test.py文件:

def tester():
    print("It's Christmas in Heaven...")

if __name__ == '__main__': 
    tester() # 调用单测代码

如果这个文件是被其他文件导入的,那么,tester函数不会执行:

>>>import test       # tester函数不会执行,除非显示调用
>>>test.tester()
It's Chrismas in Heaven...

但是如果test.py被当成程序执行,那么,tester函数会执行:

python test.py
It's Chrisma in Heaven...

 

posted @   chaoguo1234  阅读(3326)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
历史上的今天:
2013-07-22 javascript中的this
点击右上角即可分享
微信分享提示