我想迭代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