पायथन 2 में यह Table
को new-style class ("क्लासिक" वर्ग के विपरीत) घोषित करता है। पायथन 3 में सभी वर्ग नई शैली के वर्ग हैं, इसलिए यह अब आवश्यक नहीं है।
नई शैली कक्षाओं में क्लासिक कक्षाओं की कमी के कुछ विशेष गुण हैं।
class Classic: pass
class NewStyle(object): pass
print(dir(Classic))
# ['__doc__', '__module__']
print(dir(NewStyle))
# ['__class__', '__delattr__', '__dict__', '__doc__', '__format__', '__getattribute__', '__hash__', '__init__', '__module__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__']
इसके अलावा, properties और super क्लासिक वर्गों के साथ काम नहीं करते।
पायथन 2 में सभी वर्गों को नई शैली के वर्ग बनाना एक अच्छा विचार है। एक बयान जैसे
class Foo(Base1, Base2):
Foo
एक वर्ग के रूप में घोषित किया जा रहा है में (हालांकि मानक पुस्तकालय में कक्षाओं का एक बहुत अभी भी क्लासिक कक्षाएं, पश्चगामी-संगतता के लिए कर रहे हैं।)
सामान्य तौर पर, बेस क्लास Base1
और Base2
से विरासत प्राप्त करना।
object
पायथन में सभी कक्षाओं की मां है। यह एक नई शैली की कक्षा है, इसलिए object
से विरासत में Table
एक नई शैली की कक्षा बनाता है।
[पाइथन में पुरानी शैली और नई शैली कक्षाओं के संभावित डुप्लिकेट] (http://stackoverflow.com/questions/54867/old-style-and-new-style-classes-in-python) – JBernardo