示例#1:
class Person(object):
pass
示例#2:
class Person:
pass
对象声明有什么作用?你应该使用它吗?我有一堆程序和他们两个,不知道它有什么不同。如果有人可以解释这个概念,请。
class Person(object):
pass
class Person:
pass
对象声明有什么作用?你应该使用它吗?我有一堆程序和他们两个,不知道它有什么不同。如果有人可以解释这个概念,请。
在 Python2 中,声明object
为基类使该类成为新式类。否则,它是一个“经典”类。不同之处在于
属性仅适用于新式类
新式类有mro
方法
新式类有很多经典类所缺乏的属性
In [288]: class Foo: pass
In [289]: dir(Foo)
Out[289]: ['__doc__', '__module__']
In [290]: class Bar(object): pass
In [291]: dir(Bar)
Out[291]: ['__class__', '__delattr__', '__dict__', '__doc__', '__format__', '__getattribute__', '__hash__', '__init__', '__module__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__']
经典类保留在 Python2 中只是为了向后兼容。您定义的所有自定义类都应该是新样式的。
在 Python3 中,所有的类都是新式的,所以不需要在那里显式声明。
在 Python 2 中,object
它成为“新式类”。这意味着什么的细节并不太重要,但最重要的是您应该始终使用它,否则某些事情可能无法正常工作。
在 Python 3 中,一切都是新式的类,所以你不需要在object
那里使用。