python基礎學習總結2——類與對象

1. python中一切皆對象,可以用“.”來訪問對象的屬性以及方法;

2. id()用於返回對象在內存中的位置,並不表示對象的身份;is用來比較兩個對象的身份是不是相同,即是不是同一個對象;“==”用來比較對象是否有相同的值;type()用來比較兩個對象是否是有相同的類型,(type(a) is type(b));可見,類型本身也是對象;還可以使用isinstance(object, type)來檢查類型;

3. python可以爲對象創建計數並且可以自動回收垃圾,當減少對象的一個引用的時候,其計數自動減一,當計數爲0 的時候對象自動被回收,使用sys.getrefcount()函數可以獲取對象的當前引用計數;然而對於循環依賴,例如:

a={}
b={}
a['b']=b
b['a']=a
del a
del b

例子中引用對象不會歸0,所以對象不會銷燬;因此解釋器會定期執行循環檢測器,搜索不可訪問對象的循環並且刪除;

4. 引用是指爲對象創建一個新的副本,因此修改任一對象,另外一個對象都會受到影響,這屬於淺複製;深複製將創建一個新的對象,並且遞歸的複製他包含的所有對象,

淺複製:

a=[1,2,[3,4]]
b=list(a)
print b is a
#(print false)
b.append(100)
print b
#(print [1,2,[3,4],100])
b[2][0]=-100
print b
#([1,2,[-100,4],100])
print a
#([1,2,[-100,4]])
深複製:

import copy
a=[1,2,[3,4]]
b=copy.deepcopy(a)
b[2][0]=-100
print b
#([1,2,[-100,4]])
print a
#([1,2,[3,4]])

5. python的所有對象都是第一類對象(什麼意思?)(能夠使用標識符命名的所有對象都具有相同狀態,能夠命名的所有對象都可以當作數據處理)

一個字典中可以包含多種類型,比如函數、模塊、異常等等









發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章