Python語言中對象的基本概念:
Python語言中一切都是對象
對象的要素:
身份:
id(),可以被認(rèn)為是對象的內(nèi)存地址
類型:
type()
值:
實例中具體的值
對象的值是否可以更改,被成為對象的可變性
標(biāo)準(zhǔn)類型:
數(shù)字:
整形;布爾型;長整形;浮點(diǎn)型;復(fù)數(shù)型
字符串
列表
元組
字典
(NoneType)
None & NoneType
None是一個實例,該實例的類型是NoneType。NoneType只有唯一的值:None
None的布爾值為False
布爾值為False的東西有:
None
False
所有值為0的數(shù):0,0.0,0L,0.0+0.0j
空字符串""
空列表[]
空元組()
空字典{}
對于用戶自定義類型,則定義了__nonzero__()或__len__()且值為0
內(nèi)部類型(略)
標(biāo)準(zhǔn)類型的運(yùn)算
數(shù)字類型和字符串類型:
簡單的比較數(shù)值 or 字符串比較
比較id:
eg:
a = 1.0; b = 1.0
a == b >>> True #比較值
a) id(a) == id(b) >>> False
b) a is b >>> False
c) a is not b >>> True
注:python通常會緩存[-1, 100]范圍內(nèi)的整數(shù)。因此有時候:
a = 1; b = 1; a is b >>> True
布爾類型
使用not and or運(yùn)算符
標(biāo)準(zhǔn)類型的內(nèi)建函數(shù)
cmp(obj1, obj2):
比較obj1和obj2,如果obj1大于obj2則返回正數(shù),obj1小于obj2返回負(fù)數(shù),obj1等于obj2返回0
如果是用戶自定義對象,則會調(diào)用__cmp__()函數(shù)
str()和repr():
都是返回對象的字符串表現(xiàn)形式。
str()返回的字符串對人比較友好,可讀性較高
repr()返回的字符串對機(jī)器比較友好。repr()返回的字符串經(jīng)常可以直接用eval()得到原來的對象
isinstance():
用來判斷某個對象是否是特定類型的一種
eg:
num = 10
isinstance(num, (int, long, float, complex) )
type()函數(shù):
type(object) : 返回一個對象的類型,返回值為一個Type類型的對象實例
對于Type類型的對象而言,
import types
type(0) == type(1) == ... == types.IntType
并且:
type(0) is types.IntType
Java類比:同一個Java類型的不同實例,有obj1.getClass() == obj2.getClass()
標(biāo)準(zhǔn)類型的分類:
數(shù)據(jù)類型 存儲模型 更新模型 訪問模型
數(shù)字 Scalar 不可更改 直接訪問
字符串 Scalar 不可更改 順序訪問
列表 Container 可更改 順序訪問
元組 Container 不可更改 順序訪問
字典 Container 可更改 映射訪問
posted on 2011-03-15 22:15
Antony Lee 閱讀(317)
評論(0) 編輯 收藏 所屬分類:
Python學(xué)習(xí)筆記