Python:type、object、class與內建型別
阿新 • • 發佈:2019-02-20
Python:type、object、class
Python: 一切為物件
>>> a = 1
>>> type(a)
<class'int'>
>>> type(int)
<class'type'>
- type => int => 1
- type => class => obj
type是個類,生成的類也是物件,生成的例項是物件
>>>class Student:
>>> pass
>>>
>>>stu = Student()
>>>type(stu)
__main__.Student
>>>Student.__base__
object
- Student的基類是obj
>>>class MyStudent(Student):
>>> pass
>>>
>>>MyStudent.__base__
__main__.Student
- MyStudent繼承Student
- MyStudent的基類是Student
- object是最頂層的基類
type是個類,同時type也是個物件
>>> type.__base__
object
>>> type(object)
type
>>> object.__bases__
()
- object是type的例項
- type繼承object
我們可以把這些分為3類:
第一類:type自成一類,type是自己的物件(可以例項化自己),type可以把所有變成他的物件
第二類:list、str、Student…類會繼承object,list、str、Student…是類,同時也是type的物件。object是所有的基類(一切都繼承object)
- 第三類:生成的物件
Python 內建型別
物件的三個特徵:
- 身份
- 型別
- 值
身份:每個物件身份均不同
>>> a = 1
>>> id(a)
4333971504
>>> a = {}
>>>id(a)
4393125064
型別
- None(全域性只有一個)
- 數值
- int
- float
- complex(複數)
- bool
- 迭代型別
- 序列型別
- list
- bytes、bytearray、memoryview(二進位制序列)
- range
- tuple
- str
- array
- 對映(dict)
集合
- set
- frozenset
上下文管理型別(with)
- 其他
- 模組型別
- class和例項
- 函式型別
- 方法型別
- 程式碼型別
- object物件
- type型別
- ellipsis型別
- notimplemented類物件
None型別:Python在程式啟動的時候會生成一個None物件
>>> a = None
>>> b = None
>>> id(a) == id(b)
True