Python del 语句

del 语句在删除变量时,是解除变量对数据的引用,而不是直接删除数据,不是把内存地址删了,只是删除了引用,数据就变为了一个可回收的对象,然后内存会被不定期回收。

a = 1  # 对象 1 被变量a引用,对象1的引用计数器为1
b = a  # 对象 1 被变量b引用,对象1的引用计数器加1
c = a  # 对象 1 被变量c引用,对象1的引用计数器加1
del a  # 删除变量a,解除a对1的引用
del b  # 删除变量b,解除b对1的引用
print(c)  # 1  最终变量c仍然引用1

# 对列表
li = [1, 2, 3, 4, 5]
first = li[0]  # 赋值
del li[0]  # 先赋值再删除,赋值还是存在的
print(li)  # [2, 3, 4, 5]
print(first)  # 1

# 对字典
di = {'身高':175, '体重':65}
del di['体重']
print(di)  # {'身高': 175}

# del语句可以删除任何变量, 删除之后变量就调用不到了, 只能重新定义
a = 1
b = "1"
c = [1, 2]
d = (1, 2)
e = {"身高":1}
f = {1, 2}

del a, b, c, d, e, f
# print(a, b, c, d, e, f)  # NameError: name 'a' is not defined

你可能感兴趣的:(Python,python)