अवलोकन: - कोई गुण o
पर निर्धारित करते हैं, o.inner
पर सेट किया जाना चाहिए के लिए एक हीनेस्टेड वस्तुओं और setattr और getattr (उस समय हाँ, यह है)
class Inner(object):
def __init__(self, x):
self.x = x
class Outer(object):
def __init__(self, z):
self.inner = Inner(z)
o = Outer(10)
अब, मैं बाहरी वस्तु पारदर्शी रूप से व्यवहार करने के लिए चाहते हैं पढ़ना: o.something
वास्तव में, o.inner.sommething
का मान वापस करना चाहिए। प्रॉक्सी या रिले की तरह।
def __getattr__(self, item):
return getattr(self, item)
मैं __setattr__
कैसे संभाल होगा:
__getattr__
Outer
के लिए सरल & काम करता है? मैं ऐसी किसी भी चीज़ के साथ नहीं आ सकता था जिसने रिकर्सन त्रुटि नहीं की और मुझे खुद से नफरत नहीं हुई।
या अवधारणा स्वयं ही त्रुटिपूर्ण है? यह वास्तव में, वर्तमान @classmethods
सौंदर्य की दृष्टि से नहीं खेला था आईडीई उन के अंदर खो जाना चाहते हैं उल्लेख करने के लिए नहीं - -
(एक और दृष्टिकोण मैंने कोशिश की Outer
Inner
का एक उपवर्ग बना रही थी। कुछ विशेषताओं को हल करने में सक्षम नहीं है कि छोड़ दो अभी के लिए, शायद?)
क्या आपका मतलब 'self.inner = Inner (z) 'था? साथ ही, क्या आपकी Getattr विधि इनर() से डेटा लौटाती है? जिस तरह से लिखा गया है, ऐसा लगता है कि यह सिर्फ बाहरी संदर्भ देगा। – gfortune
हां - यह वापस आता है। दोनों फिक्स्ड, धन्यवाद! – ntl0ve