1. 對象模型
Python中對象是所有數(shù)據(jù)的抽象判呕。所有Python程序中的值都由對象或者對象之間的關(guān)系表示闹究。
2. Python對象的特性
- identity
- type
- value
2.1 identity
Python中每個對象有一個唯一標識identity
攻柠,一個對象的標識在對象被創(chuàng)建后不再改變。可以認為對象的identity是對象在內(nèi)存中的地址夭咬,其值可以由內(nèi)置函數(shù)id()求得趋箩。is
操作符可以比較兩個對象的identity是否相同淮逻,即兩個對象是否是同一個。
if a is b:
print ‘a(chǎn) and b are the same object’
2.2 type
type
是對象的類型阁簸,決定了對象保存值的類型爬早、可以執(zhí)行的操作,以及所遵循的規(guī)則启妹∩秆希可以使用內(nèi)置函數(shù)type()
查看一個對象的類型。因為Python中一切皆是對象饶米,type()
函數(shù)返回的也是對象桨啃,而不是簡單字符串车胡。
>>> i = 1
>>> type(i)
<type 'int'>
>>> s = "test"
>>> type(s)
<type 'str'>
2.3 value
對象表示的數(shù)據(jù)。值是可變的照瘾,值可變的對象稱為mutable對象匈棘,值一經(jīng)創(chuàng)建不可再變的對象稱為immutable對象。一個對象的可變性由其類型決定析命,例如 數(shù)字, 字符串 和元組是不可變的, 而字典和裂變則是可變的主卫。
3. 對象屬性
有些Python對象有屬性、值或相關(guān)聯(lián)的可執(zhí)行代碼鹃愤,比如方法簇搅。Python中使用(.)標記訪問對象屬性。最常用的屬性是函數(shù)和方法软吐,一些Python類型還有數(shù)據(jù)屬性瘩将。類、類實例凹耙、模塊姿现、復數(shù)和文件含有數(shù)據(jù)屬性。
參考
[1] Python核心編程第二版
[2] data model
[3] Types and Objects in Python