<分区>
示例#1:
class Person(object):
pass
示例#2:
class Person:
pass
对象声明有什么作用?你应该使用它吗?我有一堆程序,它们都有,但不知道它们有什么不同。如果有人可以解释这个概念,请。
标签 python oop inheritance
<分区>
class Person(object):
pass
class Person:
pass
对象声明有什么作用?你应该使用它吗?我有一堆程序,它们都有,但不知道它们有什么不同。如果有人可以解释这个概念,请。
最佳答案
在 Python2 中,将 object
声明为基类会使该类成为 new-style class .否则,它就是一个“经典”类。不同之处在于
属性只适用于新式类
新式类有 mro
method
新式类具有许多经典类所缺乏的属性
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中,所有类都是new-style的,所以不需要显式声明。
关于python - 对象声明在 python 类中意味着什么,我应该使用它吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13424365/