如何查看函数属性?

How to see function attributes?

在Python中函数(函数对象)可以有属性。

例如:

def func(a):
    return a*a

func.attr = 1

有没有办法查看此属性及其值?

我尝试了 inspect 模块中的 inspect.getfullargspec,但它只显示函数参数。

FullArgSpec(args=['a'], varargs=None, varkw=None, defaults=None, kwonlyargs=[], kwonlydefaults=None, annotations={})

就像任何其他对象一样,您可以使用 vars:

def func(a):
    return a*a

func.attr = 1

print(vars(func))
# {'attr': 1}
这里可以使用

Pythonvars()函数获取整个对象

代码

def func(a):
    return a**3

func.function = "Cubic Function"
func.arguments = "Integers"

print(func(99))

print(vars(func))

print(vars(func)["function"])

print(vars(func)["arguments"])

输出

970299
{'function': 'Cubic Function', 'arguments': 'Integers'}
Cubic Function
Integers