python - 使用 @property 装饰器 python 获取方法的源代码

标签 python introspection inspect

假设我有一个 MyClass 类,它有一个使用 @property 装饰器创建的属性,如下所示:

class MyClass(object):
    @property
    def foo(self):
        if whatever:
            return True
        else:
            return False

假设我想使用 python inspect 模块来获取定义属性的源代码。我知道如何为方法 (inspect.getsource) 执行此操作,但我不知道如何为属性对象执行此操作。有人知道怎么做吗?

最佳答案

通过属性的 fget 属性访问底层的 getter 函数:

print(inspect.getsource(MyClass.foo.fget))

如果它有 setter 或删除器,您可以通过 fsetfdel 访问它们:

print(inspect.getsource(MyClass.foo.fset))
print(inspect.getsource(MyClass.foo.fdel))

关于python - 使用 @property 装饰器 python 获取方法的源代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46897926/

相关文章:

java - 在 Scala/Java 中,如何检查方法的定义位置?

python - 在python上打印出类参数

lua - 如何使用 torch REPL 进行调试?

latex - 检测 LaTeX 类名

google-maps - 当我打开检查元素时谷歌地图没有完全加载它会工作

python - 如何设置nginx+tornado+flask?

python - 从下拉菜单python中的每个选项中抓取表格

python - 如何将客户端的 Python 套接字连接到 Node.js/socket.io?

python - 在python中获取每个客户的每个订单行之前的最后一个订单ID

java - 如何以编程方式确定当前类的 Java 字节码版本?