1. 程式人生 > >零基礎學python-3.5 內存管理

零基礎學python-3.5 內存管理

ali 元組 得出 使用 space tracking error: lse 對象存儲

* 變量無需事先聲明

*?變量無需指定類型

*?程序猿不用關系內存管理

*?變量名會被回收

*?del能夠直接釋放資源

1.python使用的是引用調用,而不是值調用,他使用的回收算法是引用計數算法,我以下舉兩個樣例

x = 4
y = 4
aList = [1, 2, 3]
bList = [1, 2, 3]
print(x is y)
print(x == y)
print(aList is bList)
print(aList == bList)
a = 3.2
b = 3.2
print(a is b) 
print(a == b)

輸出結果:

True
True
False
True
True
True

從輸出結果分析我們得出以下結論,

1)假設單純是整形、浮點型、字符串型這些,返回的都是同一個結果,由於它們值同樣,並且引用的地址也同樣

2)假設是列表、元組、字典等,由於兩個對象存儲不同的地址,即便是值同樣。可是假設對照引用地址,還是返回false



2.通過del,能夠刪除對象

接著上面的代碼:

x = 4
y = 4
print(x is y)
print(x == y) 
aList = [1, 2, 3]
bList = [1, 2, 3]
print(aList is bList)
print(aList == bList) 
a = 3.2
b = 3.2
print(a is b) 
print(a == b)
del a
a

輸出結果:

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 內存管理