पायथन 2 में, इनहेरिट नहीं करने से object
एक पुरानी शैली की क्लास बन जाएगी, जो अन्य प्रभावों के बीच, type
विभिन्न परिणाम देने का कारण बनती है:
>>> class Foo: pass
...
>>> type(Foo())
<type 'instance'>
बनाम
>>> class Bar(object): pass
...
>>> type(Bar())
<class '__main__.Bar'>
साथ ही कई उत्तराधिकार के नियम अलग - अलग हैं, जिन्हें मैं यहां संक्षेप में बताने की कोशिश नहीं करूंगा। सभी अच्छे प्रलेखन जो मैंने एमआई के बारे में देखे हैं, नई शैली की कक्षाओं का वर्णन करते हैं।
अंत में, पायथन 3 में पुरानी शैली की कक्षाएं गायब हो गई हैं, और विरासत से object
निहित हो गया है। इसलिए, हमेशा नई शैली की कक्षाओं को प्राथमिकता दें, जब तक कि आपको पुराने सॉफ़्टवेयर के साथ बैकवर्ड कम्प्रेसर की आवश्यकता न हो।
class Foo():
और कोई फर्क हैclass Foo:
? जैसा कि मैंने देखा, दोनों पायथन 3 में काम करते हैं