यहाँ मैं क्या चारों ओर पाने के लिए कोशिश कर रहा हूँ की एक बहुत ही सरल उदाहरण है:वर्ग __init__ (नहीं उदाहरण __init__)
class Test(object):
some_dict = {Test: True}
समस्या जबकि यह अभी भी परिभाषित किया जा रहा है कि मैं टेस्ट का उल्लेख नहीं कर सकता है
आम तौर पर, मैं बस यह करता हूं:
class Test(object):
some_dict = {}
def __init__(self):
if self.__class__.some_dict == {}:
self.__class__.some_dict = {Test: True}
लेकिन मैंने कभी इस कक्षा का उदाहरण नहीं बनाया। यह वास्तव में संबंधित कार्य करता है और डेटा के एक समूह धारण करने के लिए सिर्फ एक कंटेनर है (मैं इन कक्षाओं के कई है, और मैं उन्हें करने के लिए संदर्भ के आसपास पारित, तो यह आवश्यक उसके अपने वर्ग है टेस्ट होने के लिए)
तो मेरी प्रश्न यह है कि, इसे परिभाषित किए जाने पर टेस्ट को कैसे संदर्भित किया जा सकता है, या क्या __init__
जैसा कुछ है जिसे कक्षा के रूप में जल्द ही कहा जाता है? यदि संभव हो, तो मुझे कक्षा परिभाषा के अंदर रहने के लिए self.some_dict = {Test: True}
चाहिए।
class Test(object):
@classmethod
def class_init(cls):
cls.some_dict = {Test: True}
Test.class_init()
"समस्या यह है कि मैं टेस्ट को संदर्भित नहीं कर सकता, जबकि इसे अभी भी परिभाषित किया जा रहा है"। इसलिए? परिभाषा के दौरान ** आपको किस तरह के संदर्भ की आवश्यकता है **? मानक उत्तर कोई नहीं है: कक्षा परिभाषा स्थिर, सुसंगत और परिवर्तनीय है। ** व्यवहार ** बदल सकते हैं। परिभाषा नहीं बदलनी चाहिए। आप इस "अलग-अलग परिभाषा" व्यवसाय के साथ क्या करने की कोशिश कर रहे हैं? –
परिभाषा नहीं बदल रही है। मुझे बस कक्षा के संदर्भ की आवश्यकता है, और संगठन के प्रयोजनों के लिए, मैं यह पसंद करूंगा कि कक्षा को परिभाषित किए जाने पर मैंने उस संदर्भ को सेट किया है। – Ponkadoodle
मैं समझता हूं कि आप क्या करने की कोशिश कर रहे हैं, लेकिन मुझे नहीं मिल रहा है कि आप इसे इस तरह से करने की कोशिश क्यों कर रहे हैं और आप क्या हासिल करना चाहते हैं। क्या आप थोड़ा सा विस्तार कर सकते हैं? ऐसा लगता है कि एक वास्तुशिल्प के बाद एक "मैं कैसे पाइथन को जोड़ता हूं ...?" मुझे मुद्दा – Aea