के बीच "डीआईआर" में अंतर निम्नलिखित कोड पायथन 2 और पायथन 3 में अलग-अलग व्यवहार करता है, और मुझे यकीन नहीं है कि क्यों।पायथन 2 और 3
class Dataset(object):
def __getattr__(self, item):
if not item in dir(self):
print(item)
a = Dataset()
a.Hello
अजगर 3 में परिणाम:
> Hello
अजगर 2 में परिणाम:
__members__
__members__
__methods__
...
अनंत तक जब तक एक प्रत्यावर्तन छत तक पहुँच जाता है। "डीआईआर" के व्यवहार में क्या अंतर है?
संपादित करें: और क्या कोई कामकाज है? स्व। dict स्पष्ट विकल्प है लेकिन इसमें ऐसे फ़ंक्शन शामिल नहीं हैं जो मेरे कोड में कोई समस्या हो।
वास्तव में हो सकता है की जरूरत नहीं है, '__getattr __()' [बिल्कुल भी नहीं कहा जाना चाहिए] (https://docs.python.org/2/reference/datamodel.html#object.__getattr__) यदि विशेषता पहले से मौजूद है। – dhke