我有一节课,让我们说:
#!/usr/bin/env python
class testclass(object):
def __init__(self, a, b, c):
self.__attr1 = a
self.__attr2 = b
self.__attr3 = c
def meth(self):
## run some checks on self.__attr1, self.__attr2, self.__attr3
## How to do that?
if __name__ == '__main__':
t = testclass("dd", "ee", "gg")
问题:
如果我有几个属性而不只是三个,那么编写meth
方法的最佳方法是什么?我将对所有属性进行相同的检查。
答案 0 :(得分:1)
最简单的方法是不要将它们存储为单独的属性。在这个例子中,我使用参数打包将a
,b
和c
作为元组abc
传递,并将其存储为self._attrs
:
class testclass(object):
def __init__(self, *abc):
self._attrs = abc
def meth(self):
for attr in self._attrs:
print attr
if __name__ == '__main__':
t = testclass("dd", "ee", "gg")
答案 1 :(得分:0)
不确定通过检查attr是什么意思
但我仍然认为
def 获取(自我,实例,所有者):
可以帮助你:)