python中内置的__func__方法

__name__

__name__是python的一个内置类属性,它天生就存在于一个 python 程序中,代表对应程序名称。
在test1.py中,并运行该文件:

def some_fun():
    print(__name__)

some_fun()

#结果
#__main__

在test2.py中导入test1.py文件中some_fun函数,并运行some_fun函数:

from test import some_fun
some_fun()

#结果
#test1

因此通过判断__name__的值,就可以区分py文件是直接被运行,还是被引入其他程序中。

__all__

from bb import *
此方式只能导入公有的属性、方法、类;无法导入以单下划线开头(protected)或以双下划线开头(private)的属性、方法、类。

由于bb.py中使用了__all__=('A','func'),所以在别的模块导入该模块时,只能导入__all__中的变量、方法、类;

__all__=('func','__func','_A')
放入__all__中所有属性均可导入,即使是以下划线开头。虽然_func()、__func()属于protected ,private权限的,但是如果使用__all__是可以直接导入访问的 。也就是说可以通过这种方式导入public,protected,private。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容