मैंने हाल ही में अजगर में मेटाक्लास की खोज की है।क्या कोई पाइथन/अन्य भाषाओं में मेटा-मेटा-क्लासेस/मेटा-मेटा-मेटा-क्लासेस का उपयोग कर रहा है?
मूल रूप से पायथन में एक मेटाक्लास एक वर्ग है जो कक्षा बनाता है। कई उपयोगी कारण हैं कि आप ऐसा क्यों करना चाहते हैं - उदाहरण के लिए किसी भी प्रकार की कक्षा प्रारंभिकरण। कारखानों पर कक्षाओं को पंजीकृत करना, गुणों की जटिल मान्यता, विरासत कैसे काम करता है, इत्यादि बदलना आदि। यह सब न केवल संभव लेकिन सरल हो जाता है।
लेकिन पाइथन में, मेटाक्लास भी सादे वर्ग हैं। तो, मैं सोच अगर अमूर्त उपयोगी उच्च जा सकते हैं शुरू कर दिया है, और यह है कि यह कर सकते हैं और है कि मुझे लगता है:
- एक metaclass से मेल खाती है या एक पैटर्न में एक भूमिका को लागू करता है (GOF पैटर्न भाषाओं के रूप में)।
- एक मेटा-metaclass पैटर्न ही
- (अगर हम इसे नहीं बल्कि सिर्फ एक वर्ग की तुलना में, सार भूमिकाओं का प्रतिनिधित्व वर्गों की tuples बनाने की अनुमति) है एक मेटा-मेटा-metaclass एक पैटर्न कारखाने, जो मेल खाती है जीओएफ पैटर्न समूह के लिए, उदाहरण के लिए रचनात्मक, संरचनात्मक, व्यवहारिक। एक कारखाना जहां आप किसी निश्चित प्रकार की समस्या के मामले का वर्णन कर सकते हैं और यह आपको कक्षाओं का एक सेट देगा जो इसे हल करता है।
- मेटा-मेटा-मेटा-मेटाक्लास (जहां तक मैं जा सकता हूं), पैटर्न फैक्टरी फैक्टरी है, एक कारखाना जिसमें आप शायद अपनी समस्या के प्रकार का वर्णन कर सकते हैं और यह आपको एक पैटर्न कारखाना देगा पूछना।
मुझे इस ऑनलाइन के बारे में कुछ सामान मिला है, लेकिन अधिकतर उपयोगी नहीं है। एक समस्या यह है कि विभिन्न भाषाएं मेटाक्लास को थोड़ा अलग तरीके से परिभाषित करती हैं।
क्या किसी और ने पाइथन/अन्य जगहों में मेटाक्लास का उपयोग किया है, या इसे जंगली में इस्तेमाल किया है, या इसके बारे में सोचा है? अन्य भाषाओं में अनुरूप क्या हैं? जैसे सी ++ में टेम्पलेट रिकर्सन कितना गहरा हो सकता है?
मैं इसे और अधिक शोध करना चाहता हूं।
अद्यतन: एक लंबा समय बीत चुका है। मैंने मेटाक्लास का बहुत उपयोग किया और मुझे लगता है कि वे सहायक थे, लेकिन फिर मैं मेटाक्लास को पूरी तरह से चला गया। कारण यह है कि डोमेन संदर्भ इंटरैक्शन में देखने के बाद, और आईबीएम द्वारा कुछ शोध, मुझे एहसास हुआ कि किसी वस्तु के लिए आंतरिक प्रकार की अवधारणा स्वयं ही त्रुटिपूर्ण है। इसके बजाए, प्रकार 'किससे पूछताछ' पर निर्भर करता है। एक पक्षी के लिए, एक पेड़ सिर्फ घोंसला बनाने के लिए एक जगह है। एक लॉगर के लिए, कर-निर्धारक को आय का स्रोत, शायद कुछ और। –