使用@property decorator python获取方法的源代码

时间:2017-10-23 20:26:55

标签: python introspection inspect

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

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

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

1 个答案:

答案 0 :(得分:3)

通过属性的g = df.groupby(['one', 'two'])['three'] df['max'] = g.transform('max') df['shifted'] = g.shift() print (df) one three two max shifted 0 a 1 c 3 NaN 1 a 2 c 3 1.0 2 a 3 c 3 2.0 3 b 4 c 4 NaN 4 b 5 d 6 NaN 5 b 6 d 6 5.0 属性访问底层的getter函数:

if(env === 'prod') { // assuming you have env variable configured
   window.console.log = function(){};
}  

如果它有设置者或删除者,您可以通过fgetprint(inspect.getsource(MyClass.foo.fget)) 访问这些设置者:

fset