python - 如何获取装饰属性方法的方法名称?

标签 python

假设我有一个用 @property 装饰的方法。

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

当属性没有 __name__ 属性时,我如何打印属性的名称?

我正在尝试进行 RPC 调用,所有方法和静态函数都适用,但不适用于此。

最佳答案

属性具有以下属性: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'

关于python - 如何获取装饰属性方法的方法名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51897851/

相关文章:

python - 如何让Python get_wch捕获Enter键?

python - 有没有更好的方法来实现这个?

python - 在 Python 中查找列表和多个子列表之间的匹配索引

python - 并非所有类别都存在时的虚拟变量

python - 将字典应用回 pandas 数据框

python - PYTZ 'America/Edmonton' 偏移量错误

python - 为什么将 pandas 导入为 pd 是惯例?

python - 在 Pygame 中加载与角色 Sprite 碰撞时爆炸的图像

python - 如何创建一个处理具有不同名称的嵌套字典的数据类?

c++ - 在 PyMethodDef 中类型转换 PyCFunctionWithKeywords