標籤:python 記憶體管理
* 變數無需事先聲明
* 變數無需指定類型
* 程式員不用關係記憶體管理
* 變數名會被回收
* del可以直接釋放資源
1.python使用的是引用調用,而不是值調用,他使用的回收演算法是引用計數演算法,我下面舉兩個例子
x = 4y = 4aList = [1, 2, 3]bList = [1, 2, 3]print(x is y)print(x == y)print(aList is bList)print(aList == bList)a = 3.2b = 3.2print(a is b) print(a == b)
輸出結果:
True
True
False
True
True
True
從輸出結果分析我們得出下面結論,
1)如果單純是整形、浮點型、字串型這些,返回的都是同一個結果,因為它們值相同,而且引用的地址也相同
2)如果是列表、元組、字典等,由於兩個Object Storage Service不同的地址,即便是值相同,但是如果對比引用地址,還是返回false
2.通過del,可以刪除對象
接著上面的代碼:
x = 4y = 4print(x is y)print(x == y) aList = [1, 2, 3]bList = [1, 2, 3]print(aList is bList)print(aList == bList) a = 3.2b = 3.2print(a is b) print(a == b)del aa
輸出結果:
True
True
False
True
True
True
Traceback (most recent call last):
File "D:\myWorkSpace\CRUDFile\com\ray\test\CRUDFile.py", line 14, in <module>
a
NameError: name ‘a‘ is not defined
出現錯誤資訊,a變數沒有定義,因為我們通過del 把a釋放掉
著作權聲明:本文為博主原創文章,未經博主允許不得轉載。
零基礎學python-3.5 記憶體管理