【发布时间】:2015-11-01 17:59:47
【问题描述】:
我有一个名为Node 的类,它有一个importance setter 和getter,如下所示:
class Node:
@property
def importance(self):
return self._importance
@importance.setter
def importance(self, new_importance):
if new_importance is not None:
new_importance = check_type_and_clean(new_importance, int)
assert new_importance >= 1 and new_importance <= 10
self._importance = new_importance
稍后,我有一个继承自 Node 的类 Theorem。就importance 而言,Theorem 和Node 之间的唯一区别是Theorem 的importance 必须至少为3。
定理如何继承 importance 设置器,但添加importance >= 3 的附加约束?
我试着这样做:
class Theorem(Node):
@importance.setter
def importance(self, new_importance):
self.importance = new_importance # hoping this would use the super() setter
assert self.importance >= 3
【问题讨论】:
-
请注意,您可以通过在
Node中使用1和在Theorem中使用3的类属性MIN_IMPORTANCE来完全不同地解决问题。
标签: python oop python-3.x inheritance