對Python"一切皆物件"的小參悟
阿新 • • 發佈:2020-11-04
寫在前面
若有誤區請大神不吝指正,以免帶偏了如我者的弱雞們
據聞對此不再懵逼後,於函式以及高階函式程式設計的進階有益
類:又稱物件,由類建立的個體被稱為例項
名言名句"一切皆物件(一切皆類,一切都是模板)"
a. 溯源的規則就一項:由誰建立,即模板是誰
b. 補充一下Python直譯器中內建的標準型別(就列舉這些吧,基本都見過,沒見過的就算了,於此不重要)
- None
- 數字型別:int float complax(複數) bool
- 迭代型別:generator
- 序列型別:list tuple range str bytes
- 集合型別:set frozenset
- 對映型別:dict
- 上下文管理器型別:with
- 以數字123為例(其餘型別類似)溯源,它是由int類建立的,不信你看
>>> type(123) <class 'int'>
- int由type類建立,不信你看
>>> type(int) <class 'type'>
- type由type類建立,沒錯,就是自己建立自己,不信你看
>>> type(type) <class 'type'>
- 自建個普通類再看看
class Persion: pass
>>> type(Persion) # 由type類建立 <class 'type'>
- 特殊的類,基類object
>>> type(object) # 由type類建立 <class 'type'>
小結1:類 int、type、Persion、object 都是由type建立的
證明object是一切類的基類
- int、type、Persion的父類都是object,不信你看
>>> int.__bases__ # 檢視繼承的父類,返回一個tuple (<class 'object'>,) >>> type.__bases__ (<class 'object'>,) >>> Persion.__bases__ (<class 'object'>,)
- object沒有父類,不信你看
>>> object.__bases__ ()
總結:一切皆物件,一切皆繼承自object
- 類都是由type建立的,包括自己建立自己,且繼承自object
- object是一切類的父類,同時object也是type的建立的
名言名句"先有雞還是先有蛋"
- 先有type還是先有object?