python中内置的__func__方法

Python018

python中内置的__func__方法,第1张

__name__是python的一个内置类属性,它天生就存在于一个 python 程序中,代表对应程序名称。

在test1.py中,并运行该文件:

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

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

from bb import *

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

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

__all__=('func','__func','_A')

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

定义个函数,查看带括号和不带括号的type.

def func1():

pass

print(type(func1))

#执行结果:<class 'function'>

print(type(func1()))

#执行结果:<class 'NoneType'>

由此可见:

使用return func 时返回的是func 这个函数;

使用return func() 时返回的是func() 执行后的返回值,如果func()函数没有返回值则返回值为None,

func函数如果有其他打印语句也会一起执行。