python 关键字 del 用法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 关键字 del 用法相关的知识,希望对你有一定的参考价值。

在python中,关键字del的使用方法以及实例是?

__del__()方法

python_del用法:

import time

class Animal(object):

# 初始化方法

# 创建完对象后会自动被调用

def __init__(self, name):

print('__init__方法被调用')

self.__name = name

# 析构方法

# 当对象被删除时,会自动被调用

def __del__(self):

print("__del__方法被调用")

print("%s对象马上被干掉了..."%self.__name)

# 创建对象

dog = Animal("哈皮狗")

# 删除对象

del dog

cat = Animal("波斯猫")

cat2 = cat

cat3 = cat

print("---马上 删除cat对象")

del cat

print("---马上 删除cat2对象")

del cat2

print("---马上 删除cat3对象")

del cat3

print("程序2秒钟后结束")

time.sleep(2)

参考技术A del用于list列表操作,删除一个或者连续几个元素

示例程序如下:
>>> a = [-1, 3, 'aa', 85] # 定义一个list
>>> a
[-1, 3, 'aa', 85]
>>> del a[0] # 删除第0个元素
>>> a
[3, 'aa', 85]
>>> del a[2:4] # 删除从第2个元素开始,到第4个为止的元素。包括头不包括尾
>>> a
[3, 'aa']
>>> del a # 删除整个list
>>> a
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'a' is not defined

python del 的用法

转自 https://blog.csdn.net/love1code/article/details/47276683

python中的del用法比较特殊,新手学习往往产生误解,弄清del的用法,可以帮助深入理解python的内存方面的问题。

python的del不同于C的free和C++的delete。

由于python都是引用,而python有GC机制,所以,del语句作用在变量上,而不是数据对象上。

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

del删除的是变量,而不是数据。

 

另外,关于list。

if __name__==__main__:
    li=[1,2,3,4,5]  #列表本身不包含数据1,2,3,4,5,而是包含变量:li[0] li[1] li[2] li[3] li[4] 
    first=li[0]     #拷贝列表,也不会有数据对象的复制,而是创建新的变量引用
    del li[0]
    print(li)      #输出[2, 3, 4, 5]
    print(first)   #输出 1

 

以上是关于python 关键字 del 用法的主要内容,如果未能解决你的问题,请参考以下文章

Python关键字及其用法

python~字典给默认属性赋值使用del关键字,删除赋值,恢复其默认属性

python基础--input print if else elif while 用法说明

python中del 语句的用法?

python del 的用法

python中关键字pass的用法[重复]