如何将两个值传递给设置器?
您可以将iterable(元组,列表)传递给setter,例如:
class A(object): def __init__(self, val): self.idx = val @property def idx(self): return self._idx @idx.setter def idx(self, val): try: value1, value2 = val except ValueError: raise ValueError("Pass an iterable with two items") else: """ This will run only if no exception was raised """ self._idx = sha512(value1+value2)
演示:
>>> a = A(['foo', 'bar']) #pass a list>>> b = A(('spam', 'eggs')) #pass a tuple>>> a.idx<sha512 HASH object @ 0xa57e688>>>> a.idx = ('python', 'org') #works>>> b.idx = ('python',) #failsTraceback (most recent call last): ... raise ValueError("Pass an iterable with two items")ValueError: Pass an iterable with two items
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)