Python中定义类时,class, class()和class(object)的区别

先给出所参考的两篇文章的链接(本文包含了两篇文章的内容):

Python 中Python 为什么要继承 object 类

python2中为什么在进行类定义时最好要加object,不加又怎样

1.使用 Python 时, 遇到 class A 和 class A(object) 的写法,在 Py2 中是有概念上和功能上的区别的, 分别称为经典类(旧式类)old-style(classic-style) 与新式类的区别new-style。


2.历史原因.2.2以前的时候type和object还不统一. 在2.2统一到3之间, 要用class Foo(object)来申明新式类, 因为它的type是 < type ‘type’ > .不然的话, 生成的类的type就是 < type ‘classobj’ >


3.为什么要继承object类?主要目的是便于统一操作。在python 3.X中已经默认继承object类


所以,继承object类是为了让自己定义的类拥有更多的属性,以便使用。当然如果用不到,不继承object类也可以。

python2中继承object类是为了和python3保持一致,python3中自动继承了object类。

python2中需要写为如下形式才可以继承object类。

def class(object):

python2中写为如下两种形式都是不能继承object类的,也就是说是等价的。

def class:

def class():


你可能感兴趣的:(python)