关于oop:对象声明在Python类中是什么意思,我应该使用它吗?

What does the object declaration mean in a python class, and should I use it?

本问题已经有最佳答案,请猛点这里访问。

例1:

1
2
class Person(object):
    pass

例2:

1
2
class Person:
    pass

对象声明的作用是什么?你应该用它吗?我有一系列的程序,它们都有,我不知道有什么不同。如果有人能解释这个概念,请。


在python2,使declaring object基类的类的新类型。否则,它是一类的"经典"。的差异是这样的

  • 工作特性与新型的类。

  • 新型类有mro

  • 新型类的类属性,有许多经典的缺失

    1
    2
    3
    4
    5
    6
    7
    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 backwards兼容。自定义类定义了所有你要制造新的风格。

在python3类,全是新的风格,所以这是不符合有明确的需要。


在Python中,使得它的"新object风格的类"。本装置是在细节是不是太重要,但底线是你应该永远使用它,或一些事情可能不工作的权利。

Python中的一切总是3,是一类新型的操作系统,你需要使用object那里。