python3中的type与object
在python中,一切皆對象,應該怎么理解呢??
先來看幾個例子:
>>> a = 1 # 定義一個變量,值為1 >>> type(a) # 查看變量a的類型,可以看出變量a是由int類實例而來 <class 'int'> >>> type(1) # 查看整數(shù)1的類型,結果也是由int類實例而來 <class 'int'> >>> type(int) # 查看int類的類型,得出結論:int類型是由type類實例化而來 <class 'type'> >>> >>> str1 = 'aa' # 定義一個變量,值為'aa'字符串 >>> type(str1) # 查看變量str1的類型,可以看出變量str1是由str類實例而來 <class 'str'> >>> type('aa') # 查看'aa'字符串的類型,結果也是由str類實例而來 <class 'str'> >>> type(str) # 查看str類的類型,得出結論:str類型是由type類實例化而來 <class 'type'> >>> >>> class Goods: # 自定義一個Goods商品類 ... pass ... >>> good1 = Goods() # 實例化Goods類,得到實例化對象good1 >>> type(good1) # 查看good1的類型,可以看到是由Goods類實例化出來的 <class '__main__.Goods'> >>> type(Goods) # 查看Goods類的類型,得出結論:Goods類是由type類實例化而來的 <class 'type'>同理,我們也可以使用type方法查看list,tuple,dict,set等數(shù)據(jù)類型的類型,這些數(shù)據(jù)類型都是由type類實例化來的
>>> type(list) <class 'type'> >>> type(tuple) <class 'type'> >>> type(dict) <class 'type'> >>> type(set) <class 'type'>所以,可以得出結論:
在python3中,所有數(shù)據(jù)類型的變量都是由對應的類來創(chuàng)建的,而創(chuàng)建數(shù)據(jù)類型的類都是由type類實例化得到所以,python中所有的數(shù)據(jù)類型都是type類實例化來的
在上面的例子里,定義一個Goods類,然后根據(jù)Goods類實例化good1對象
''' 遇到問題沒人解答?小編創(chuàng)建了一個Python學習交流QQ群:778463939 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學習教程和PDF電子書! ''' >>> Goods.__bases__ # 查看Goods類的基類,結果為object類 (<class 'object'>,) >>> class TestGoods(Goods): # 再定義一個TestGoods類,繼承Goods類 ... pass ... >>> TestGoods.__bases__ # 查看TestGoods類的基類,結果顯示為Goods類 (<class '__main__.Goods'>,)所以,在定義類時,如果未指定類所繼承的父類,其基類都是object
從上面的例子知道,所有數(shù)據(jù)類型的變量都是由對應的類來創(chuàng)建的
>>> int.__bases__ # 查看int類的基類,結果為int類是繼承自object類的 (<class 'object'>,) >>> str.__bases__ # 查看str類的基類,結果為str類是繼承自object類的 (<class 'object'>,) >>> tuple.__bases__ # 查看tuple類的基類,結果為tuple類是繼承自object類的 (<class 'object'>,) >>> list.__bases__ # 查看list類的基類,結果為list類是繼承自object類的 (<class 'object'>,) >>> dict.__bases__ # 查看dict類的基類,結果為dict類是繼承自object類的 (<class 'object'>,) >>> set.__bases__ # 查看set類的基類,結果為set類是繼承自object類的 (<class 'object'>,)所以,object是最頂層基類
通過查看python源碼,也可以驗證這個結論
在前面,已經(jīng)知道,python所有數(shù)據(jù)類型的類型都是由type類實例化得到的,那么type類又是由什么實例化而來,type類的基類又是什么呢
通過查看源碼,可以看到type類是繼承自object的
由此可以知道,type是一個類,同時type也是一個對象
object類是所有類的基類,object類的基類又是什么呢??
>>> type(object) # 查看object的類型,結果為object類也是由type類實例化而來 <class 'type'> >>> object.__bases__ # 查看object的基類,結果為object類的基類為空 ()綜上所述,object與type和class的關系如下圖所示
總結
以上是生活随笔為你收集整理的python3中的type与object的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python操作Excel的5种方式
- 下一篇: Numpy中stack(),hstack