使用 @属性 装饰器 python 获取方法的源代码
get source code for method with @property decorator python
假设我有一个 class MyClass,它有一个使用 @属性 装饰器创建的 属性,如下所示:
class MyClass(object):
@property
def foo(self):
if whatever:
return True
else:
return False
假设我想使用 python 检查模块来获取定义 属性 的源代码。我知道如何为方法 (inspect.getsource) 执行此操作,但我不知道如何为 属性 对象执行此操作。有人知道怎么做吗?
通过 属性 的 fget
属性访问基础 getter 函数:
print(inspect.getsource(MyClass.foo.fget))
如果它有 setter 或删除器,您可以通过 fset
和 fdel
访问它们:
print(inspect.getsource(MyClass.foo.fset))
print(inspect.getsource(MyClass.foo.fdel))
假设我有一个 class MyClass,它有一个使用 @属性 装饰器创建的 属性,如下所示:
class MyClass(object):
@property
def foo(self):
if whatever:
return True
else:
return False
假设我想使用 python 检查模块来获取定义 属性 的源代码。我知道如何为方法 (inspect.getsource) 执行此操作,但我不知道如何为 属性 对象执行此操作。有人知道怎么做吗?
通过 属性 的 fget
属性访问基础 getter 函数:
print(inspect.getsource(MyClass.foo.fget))
如果它有 setter 或删除器,您可以通过 fset
和 fdel
访问它们:
print(inspect.getsource(MyClass.foo.fset))
print(inspect.getsource(MyClass.foo.fdel))