मैं एक वर्ग Node
नामक एक importance
सेटर और गेटर, नीचे दिए गए है कि है ओवरराइड: बाद मेंएक विरासत संपत्ति सेटर
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
, मैं एक वर्ग Theorem
कि Node
से विरासत है। Theorem
और Node
के बीच एकमात्र अंतर, जहां तक importance
संबंधित है, यह है कि Theorem
में कम से कम 3
का importance
होना चाहिए।
कैसे एक प्रमेय इनहेरिट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
आप एक वर्ग विशेषता 'MIN_IMPORTANCE' वह यह है कि' 'Node' में 1' और' Theorem' में '3' होने से पूरी तरह से अलग तरह से समस्या का समाधान हो सकता है ध्यान दें। – jonrsharpe
[अजगर में गुण ओवरराइड करना] के संभावित डुप्लिकेट (http://stackoverflow.com/questions/7019643/overriding-properties-in-python) –