python - 如何获取修饰属性方法的方法名称?
问题描述
可以说我有一个方法,我用@property
.
有没有办法获取装饰方法的底层名称?
例如,当它没有属性时,我怎么能打印属性的名称__name__
?
我正在尝试进行 RPC 调用,一切都适用于方法和静态函数,但不是这个。
解决方案
属性具有以下属性:fget、fset和fdel,它们是对 getter/setter/deleter 函数的引用。
因此,您可以获得__name__
每个函数的 (如果不是None
)
演示:
class Thing(object):
@property
def foo(self):
return "foo"
def get_baz(self):
return "baz"
bar = property(get_baz)
>>> Thing.foo.fget.__name__
'foo'
>>> Thing.bar.fget.__name__
'get_baz'