这有什么区别:
class ThisIsAClass(object)
pass
print ThisIsAClass()
>> <__main__.ThisIsAClass object at 0x7f0128a8fd10>
Run Code Online (Sandbox Code Playgroud)
还有这个?
class ThisIsAClass()
pass
print ThisIsAClass()
>> <__main__.ThisIsAClass instance at 0x7f0128a8fd10>
Run Code Online (Sandbox Code Playgroud)
声明的类型不同.新式类继承自object或其他新式类.
class NewStyleClass(object):
pass
class AnotherNewStyleClass(NewStyleClass):
pass
Run Code Online (Sandbox Code Playgroud)
旧式的课程没有.
class OldStyleClass():
pass
Run Code Online (Sandbox Code Playgroud)
好吧,新样式类继承自objectOR其他新样式类.
在Python 2.1中,旧式类是用户可用的唯一风格.(旧式)类的概念与类型的概念无关:如果x是旧式类的实例,则x.__class__指定类的类x,但type(x)始终是< type 'instance'>.这反映了这样一个事实,即所有旧式实例独立于其类,都使用一个称为实例的内置类型实现.
Python 2.2中引入了新式类来统一类和类型.新式类既不多于也不少于用户定义的类型.如果x是新式类的实例,则type(x)与之相同x.__class__.
引入新式类的主要动机是提供具有完整元模型的统一对象模型.
出于兼容性原因,默认情况下类仍为旧式.
Python 3只有新式的类.