我有一个python类/对象如下。
class Hello:
def __init__(self):
self.x = None
self.y = None
self.z = None
h = Hello()
h.x = 10
h.y = 20
# h.z is not set
我需要检查是否设置了所有成员变量(不是None)。我怎么能自动完成?
for value in ??memeber variables in h??:
if value == None:
print 'value is not set'
答案 0 :(得分:3)
class Hello(object):
def __init__(self):
self.x = None
self.y = None
self.z = None
def is_all_set(self):
return all(getattr(self, attr) is not None for attr in self.__dict__)
但是,正如@delnan所说,你应该更喜欢让类永远不能处于有效状态(这被称为保留“类不变量”)
答案 1 :(得分:0)
我需要检查是否设置了所有成员变量(不是None)。
为什么呢?
您需要成员变量才能在课程中进行一些处理。
class Hello:
def __init__(self):
self.x = None
self.y = None
self.z = None
def some_processing( self ):
assert all( self.x is not None, self.y is not None, self.z is not None )
# Now do the processing.