Python描述符(descriptor)解密(二)

2014-11-24 00:14:56 · 作者: · 浏览: 29
e


#ok
@property
def rating(self):
return self._rating


@rating.setter
def rating(self, value):
if value < 0:
raise ValueError("Negative value not allowed: %s" % value)
self._rating = value


#uhh...
@property
def runtime(self):
return self._runtime


@runtime.setter
def runtime(self, value):
if value < 0:
raise ValueError("Negative value not allowed: %s" % value)
self._runtime = value


#is this forever
@property
def gross(self):
return self._gross


@gross.setter
def gross(self, value):
if value < 0:
raise ValueError("Negative value not allowed: %s" % value)
self._gross = value


def profit(self):
return self.gross - self.budget


可以看到代码增加了不少,但重复的逻辑也出现了不少。虽然property可以让类从外部看起来接口整洁漂亮,但是却做不到内部同样整洁漂亮。


推荐阅读: