在定义class的时候,有几种常见的写法,比如:
class A:
pass
class B():
pass
class C(object):
pass
在python 2中查看以上各个class的类型,结果如下:
class A:
pass
class B():
pass
class C(object):
pass
print type(A)
print type(B)
print type(C)
print出来的结果如下:
<type 'classobj'>
<type 'classobj'>
<type 'type'>
可见,在python 2中,加不加括号,都是表示经典的类,而如果括号里指明继承object,则为新式类。
而在python 3中,查看各个class的类型,结果如下:
class A:
pass
class B():
pass
class C(object):
pass
print(type(A))
print(type(B))
print(type(C))
print之后的结果如下:
<class 'type'>
<class 'type'>
<class 'type'>
说明在python 3中,不管加不加括号,不管指不指明继承object,都是新式类。
总结:在python 3中,默认是新式类。在python 2中,默认是经典类,但如果指明是object,则为新式类。