1.標准類型運算符:
(1)對象值的比較
(2)對象身份的比較:
例1.如:foo1 = foo2 = 4.3 表示foo1和foo2指向相同的對象.(這條語句等同於 foo1 = 4.3 foo2 = foo1) 因為python是通過傳遞引用來處理對象的.
例2.foo1 = 4.3 第一個數值對象被創建,然後賦值給foo1,
foo2 = 1 + 3.3 第二個對象被創建,並賦值給foo2.
盡管兩個對象保存的是同樣大小的值,但是系統保存的是兩個獨立的對象,foo1引用對象1,而foo2 是對另一個對象的引用.
注:每個對象都天生具有一個計數器,記錄它自己的引用次數。這個數目表示有多少個變量指向該對象。可以用 is和 is not運算符來判斷兩個變量是否指向同一個對象.
a is b 等價於id(a) == id (b) ------------a,b是同一個對象.
(3).Python會緩存整數對象:(-1,100)這個范圍可能改變.
>>> a = 1
>>> id(a)
144207208
>>> b = 1
>>> id(b)
144207208 可以看出1被緩存了,地址不變
>>> c = 1.0
>>> id(c)
144243140
>>> d = 1.0
>>> id(d)
144243124 1.0沒有被緩存.
2.內建函數:
(1)type() 接受一個對象做為參數,並返回它的類型---------type()返回任意Python對象的類型,而不局限於標准類型.
(2)cmp()用於比較兩個對象obj1 和obj2, 如果obj1 小於obj2, 則返回一個負整數,如果obj1 大於obj2 則返回一個正整數, 如果obj1 等於obj2, 則返回0。
(3)內建函數 str() 和 repr() 或反引號運算符(``) 可以方便的以字符串的方式獲取對象的內容、類型、數值屬性等信息。
通常情況下:obj = eval(repr(obj))
(4)isinstance()用法例子:
#!/usr/bin/env python
def displayNumType(num):
print num, 'is',
if isinstance(num, (int, long, float, complex)):
print 'a number of type:', type(num).__name__
else:
print 'not a number at all!!'
displayNumType(-69)
displayNumType(9999999999999999999L)
displayNumType(98.6)
displayNumType(-5.2+1.9j)
displayNumType('xxx')