मैं एक समारोह है कि यह तर्क से व्युत्पन्न वर्ग बनाता है:वर्ग नाम गतिशील रूप से कैसे सेट करें?
def factory(BaseClass) :
class NewClass(BaseClass) : pass
return NewClass
अब जब मैं इसका इस्तेमाल नई कक्षाएं बनाने के लिए, वर्गों सभी एक ही नाम हैं, और उदाहरणों देखो की तरह वे एक ही प्रकार है:
NewA = factory(ClassA)
NewB = factory(ClassB)
print type(NewA()) # <class __main__.NewClass>
print type(NewB()) # <class __main__.NewClass>
क्या __name__
विशेषता मैन्युअल रूप से सेट करने के लिए उचित फ़िक्स है?
NewA.__name__ = 'NewA'
print type(NewA()) # <class __main__.NewA>
क्या कोई अन्य चीजें हैं जिन्हें मैं स्थापित कर रहा हूं, जबकि मैं इसमें हूं?
यदि न्यू क्लास में कक्षा परिभाषा बहुत लंबी है तो थोड़ा सा गुंजाइश लगता है। मुझे सभी विधियों को एक शब्दकोश में जमा करना होगा (मुझे लगता है कि '' __doc __ '' के तहत, दस्तावेज़ स्ट्रिंग भी वहां जाती है)। – kiyo
क्या भी अगर न्यू क्लास में विधियों को गतिशील रूप से बेस क्लास के तरीकों का संदर्भ देना है? – kiyo
'टाइप' वैरिएबल बेस सूचियों वाले वर्ग बनाने जैसी चीजों के लिए है; यह पूरी तरह से गलत उपकरण है। –