1. 對象模型
Python中對象是所有數據的抽象。所有Python程序中的值都由對象或者對象之間的關系表示。
2. Python對象的特性
- identity
- type
- value
2.1 identity
Python中每個對象有一個唯一標識identity
,一個對象的標識在對象被創建后不再改變。可以認為對象的identity是對象在內存中的地址,其值可以由內置函數id()求得。is
操作符可以比較兩個對象的identity是否相同,即兩個對象是否是同一個。
if a is b:
print ‘a and b are the same object’
2.2 type
type
是對象的類型,決定了對象保存值的類型、可以執行的操作,以及所遵循的規則。可以使用內置函數type()
查看一個對象的類型。因為Python中一切皆是對象,type()
函數返回的也是對象,而不是簡單字符串。
>>> i = 1
>>> type(i)
<type 'int'>
>>> s = "test"
>>> type(s)
<type 'str'>
2.3 value
對象表示的數據。值是可變的,值可變的對象稱為mutable對象,值一經創建不可再變的對象稱為immutable對象。一個對象的可變性由其類型決定,例如 數字, 字符串 和元組是不可變的, 而字典和裂變則是可變的。
3. 對象屬性
有些Python對象有屬性、值或相關聯的可執行代碼,比如方法。Python中使用(.)標記訪問對象屬性。最常用的屬性是函數和方法,一些Python類型還有數據屬性。類、類實例、模塊、復數和文件含有數據屬性。
參考
[1] Python核心編程第二版
[2] data model
[3] Types and Objects in Python