如何迭代Python3中的班级中的自我属性



我想迭代python3中的自我函数的自我属性,但是我没有发现任何相似之处。我在这里的班级外面找到了如何做。

我的问题是,这可能吗?

class Foo:
    def __init__(self, attr1, attr2):
        self.attr1 = attr1
        self.attr2 = attr2
    def method1(self):
        #Return sum of the values of the self attributes
        pass

您可以通过__dict__成员访问所有属性:

class Foo:
    def __init__(self, attr1, attr2):
        self.attr1 = attr1
        self.attr2 = attr2
    def method1(self):
        return sum(self.__dict__.values())

您也可以使用VAR(感谢Azat Ibrakov和S.M. -Styvane指出这一点(:

    def method1(self):
        return sum(vars(self).values())

这是关于__dict__vars()的很好的讨论。

我不是将__dict__用于简单事物的忠实拥护者。您应该使用vars返回您的实例属性的dist

>>> class Foo(object):
...     def __init__(self, attr1, attr2):
...         self.attr1 = attr1
...         self.attr2 = attr2
...     def method1(self):
...         return sum(vars(self).values())
... 
>>> Foo(2, 4).method1()
6

最新更新