완전성을 위해 몇 가지 다른 임의의 아이디어. 그들이 당신을 위해 일한다면, 그들을 사용하십시오. 그렇지 않으면 다른 것을 시도하는 것이 좋습니다.
사전을 사용하여이 작업을 수행 할 수도 있습니다.
>>> x = {'cond1' : 'val1', 'cond2' : 'val2'}
>>> y = {'cond1' : 'val1', 'cond2' : 'val2'}
>>> x == y
True
이 옵션은 더 복잡하지만 유용 할 수도 있습니다.
class Klass(object):
def __init__(self, some_vars):
#initialize conditions here
def __nonzero__(self):
return (self.cond1 == 'val1' and self.cond2 == 'val2' and
self.cond3 == 'val3' and self.cond4 == 'val4')
foo = Klass()
if foo:
print "foo is true!"
else:
print "foo is false!"
그것이 당신에게 효과적이라면 Dunno이지만, 고려해야 할 또 다른 옵션입니다. 한 가지 더 방법이 있습니다.
class Klass(object):
def __init__(self):
#initialize conditions here
def __eq__(self):
return (self.cond1 == 'val1' and self.cond2 == 'val2' and
self.cond3 == 'val3' and self.cond4 == 'val4')
x = Klass(some_values)
y = Klass(some_other_values)
if x == y:
print 'x == y'
else:
print 'x!=y'
마지막 두 가지는 테스트하지 않았지만 원하는 개념이라면 개념이 충분합니다.
(그리고 레코드의 경우, 이것이 한 번만 발생하면 처음에 제시 한 방법을 사용하는 것이 좋습니다. 많은 곳에서 비교를 수행하는 경우 이러한 방법으로 가독성을 향상시킬 수 있습니다 그들이 해 키다는 사실에 대해 너무 나쁘게 느끼지 않습니다.)
pep8
패키지 기준 을 만족하는 형식화 솔루션을 찾아야 합니다.pep8
패키지의 문제점 # 126는 엄격하게 PEP8 사양에 따라에 패키지를 고정에 관한 것입니다. 이 문제에 대한 토론에는 여기에서도 볼 수있는 몇 가지 스타일 제안이 포함됩니다.