如何获取用`@ property`装饰的所有方法的列表?

时间:2018-01-22 13:47:37

标签: python

如何获取已使用@property装饰器修饰的类的所有方法的列表?

通过以下示例,答案应该包含一个仅包含xy但不包含z的列表,因为它尚未使用@property进行修饰:

class C(object):
    def __init__(self):
        self._x = None
        self._y = None

    @property
    def x(self):
        """I'm the 'x' property."""
        return self._x

    @x.setter
    def x(self, value):
        self._x = value

    @x.deleter
    def x(self):
        del self._x

    @property
    def y(self):
        return self._y

    def z(self):
        pass

2 个答案:

答案 0 :(得分:6)

$comments = $project->comments()->get(); foreach($comments as $comment) { $replicatedComment = $comment->replicate(); $replicatedComment->project_id = $project->id; $replicatedComment->save(); } 修饰的方法是@property

的实例
property

答案 1 :(得分:2)

使用以下内容:

k = [name for name, value in vars(C).items() if isinstance(value, property)]

现在,print k

打印:['x', 'y']