से अभिभावक वर्ग विशेषता तक पहुंच प्राप्त करने के लिए मेरे पास कक्षाकक्षा वर्ग my_list
है। मैं इसके बारे में एक उपवर्ग SubKlass
, जिसमें मैं एक वर्ग विशेषता my_list
माता पिता वर्ग से एक ही विशेषता का एक संशोधित संस्करण है जो करना चाहते हैं:उप-वर्ग निकाय
class Klass():
my_list = [1, 2, 3]
class SubKlass(Klass):
my_list = Klass.my_list + [4, 5] # this works, but i must specify parent class explicitly
#my_list = super().my_list + [4, 5] # SystemError: super(): __class__ cell not found
#my_list = my_list + [4, 5] # NameError: name 'my_list' is not defined
print(Klass.my_list)
print(SubKlass.my_list)
तो, वहाँ के बिना माता पिता के वर्ग विशेषता का उपयोग करने के लिए एक रास्ता है इसका नाम निर्दिष्ट कर रहे हैं?
अद्यतन: http://bugs.python.org/issue11339:
अजगर समस्या ट्रैकर पर एक बग नहीं है। आइए आशा करते हैं कि यह किसी बिंदु पर solved होगा।
ध्यान दें कि metaclasses # 3 को हाइजैक करता है, और इसे 'टाइप' पर पास करने से पहले 'आधार' को भी संशोधित कर सकता है। तो हाँ, आप नहीं कर सकते। – delnan
हां, यह समझ में आता है। मैंने खुद के बारे में सोचा (मेटाक्लास के माध्यम से), लेकिन विरासत सूची का विस्तार करना सिर्फ एक उदाहरण था। कोई इसे विस्तारित करने के बजाय सूची से कुछ आइटम हटाना चाहता है। या कोई सूची नहीं है लेकिन अन्य प्रकार ... व्यापक उत्तर के लिए धन्यवाद! – warvariuc
मैंने रूबी में सुना है कि आप पूरी तरह से परिभाषित होने से पहले कक्षा तक पहुंच सकते हैं ... – warvariuc