函数属性
python中的函数是一种对象,它有属于对象的属性。除此之外,函数还可以自定义自己的属性。注意,属性是和对象相关的,和作用域无关。
自定义属性
自定义函数自己的属性方式很简单。假设函数名称为myfunc,那么为这个函数添加一个属性var1:
myfunc.var1="abc"
那么这个属性var1就像是全局变量一样被访问、修改。但它并不是全局变量。
可以跨模块自定义函数的属性。例如,在b.py中有一个函数b_func(),然后在a.py中导入这个b.py模块,可以直接在a.py中设置并访问来自b.py中的b_func()的属性。
1 import b2 b.b_func.var1="hello"3 print(b.b_func.var1) # 输出hello
查看函数对象属性
python函数是一种对象,是对象就会有对象的属性。可以通过如下方式查看函数对象的属性:
dir(func_name)
例如,有一个属性__name__,它表示函数的名称:
1 def f(x):2 y=103 def g(z):4 return x+y+z5 return g6 7 print(f.__name__) # 输出f
还有一个属性__code__,它表示函数代码对象:
print(f.__code__)
输出: