首页 > 解决方案 > 如何获取修饰属性方法的方法名称?

问题描述

可以说我有一个方法,我用@property.

有没有办法获取装饰方法的底层名称?

例如,当它没有属性时,我怎么能打印属性的名称__name__

我正在尝试进行 RPC 调用,一切都适用于方法和静态函数,但不是这个。

标签: python

解决方案


属性具有以下属性:fgetfsetfdel,它们是对 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'

推荐阅读