【Python深刻】Python中繼承object和不繼承object的區別

python中定義class的時候,有object和沒有object的不一樣?例如:python

class Solution(object):ssh

class Solution():spa

 

這倆的區別在於——————code

在python2.x中,經過分別繼承自object和不繼承object定義不一樣的類,以後經過dir()和type分別查看該類的全部方法和類型:orm

>>> class test(object): ... pass ... >>> dir(test) ['__class__', '__delattr__', '__dict__', '__doc__', '__format__', '__getattribute__', '__hash__', '_
_init__', '__module__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__size of__', '__str__', '__subclasshook__', '__weakref__']
>>> type(test) <type 'type'>
>>> class test2(): ... pass ... >>> dir(test2) ['__doc__', '__module__'] >>> type(test2) <type 'classobj'>

在3.x中:二者是一致的,由於在3.x中,默認繼承就是object了blog

>>> class test(object):     pass

>>> class test2():     pass

>>> type(test) <class 'type'>

>>> type(test2) <class 'type'>

>>> dir(test) ['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__'] >>> dir(test2) ['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__']
相關文章
相關標籤/搜索