Python中type与Object的差别

Python中type与Object的区别

    初学Python的时候,对定义类的时候,为选择括号内是写object还是type而苦恼。在查看了Python的API后,总算明白了。现在总结如下:

    先来看object的说明:

    Python中关于object的说明很少,甚至只有一句话:

   

class object 
    The most base type 

 

 

    从介绍上看这也是Python对类型统一做出的努力。所以这里的object与Java的Object类有着异曲同工之妙,而且可以推测这个object很可能就是一个定义了一个类型的"空类"

    再来看type的说明:

   

class type(object) 
    type(object) -> the object's type
type(name, bases, dict) -> a new type
  
  Methods defined here:

__call__(...)
x.__call__(...) <==> x(...)
__cmp__(...)
x.__cmp__(y) <==> cmp(x,y)
__delattr__(...)
x.__delattr__('name') <==> del x.name
__getattribute__(...)
x.__getattribute__('name') <==> x.name
__hash__(...)
x.__hash__() <==> hash(x)
__repr__(...)
x.__repr__() <==> repr(x)
__setattr__(...)
x.__setattr__('name', value) <==> x.name = value
__subclasses__(...)
__subclasses__() -> list of immediate subclasses
mro(...)
mro() -> list
return a type's method resolution order
 

 

 

     从图上可以看出type类定义了很多方法,我们可以将它认为是一个帮助类吧。

 

     自从大家应该明白了type和object的区别吧。如果大家平时在定义类的时候,想尽可能的偷懒,可以直接从type继承,否则还是建议继承object吧

 

     另外贴上实际运行的区别吧:

    
Python中type与Object的差别

 

   
Python中type与Object的差别
 
 
Python中type与Object的差别
 


Python中type与Object的差别