कक्षा के लोड होने के बाद ही मैं वर्तमान और विरासत कक्षाओं से बाधाओं को विलय करना चाहता हूं (प्रति ऑब्जेक्ट नहीं!)।पायथन में कक्षाएं (उदाहरण नहीं) कैसे शुरू करें?
class Domain(Validatable):
constraints = {...}
ऐसा करने के लिए मैं एक विधि _initialize_class_not_instance
कि प्रत्येक वर्ग के लिए एक बार बुलाया जाना चाहिए परिभाषित:
class Validatable:
@classmethod
def _initialize_class_not_instance(cls):
# merge constraints from derived class and base classes
pass
__class__._initialize_class_not_instance() # doesn't work
# Validatable._merge_constraints() # doesn't work too
समस्या यह है कि __class__
इस संदर्भ में मौजूद नहीं है और Validatable
भी परिभाषित नहीं है। लेकिन मैं इससे बचना चाहता हूं कि मेरे एपीआई के उपयोगकर्ता को प्रारंभिक विधि को स्पष्ट रूप से कॉल करना होगा या अतिरिक्त कक्षा सजावट का उपयोग करना होगा।
कक्षाओं को आरंभ करने के बारे में कोई विचार?
ध्यान दें कि कक्षा ** ** उदाहरण हैं, आमतौर पर वे 'प्रकार' के उदाहरण होते हैं, लेकिन @Ignacio ने इंगित किया है कि वे 'प्रकार' के कस्टम उप-वर्ग के उदाहरण हो सकते हैं। रिकॉर्ड के लिए – Duncan