Python删除实例属性

Python删除实例属性教程

Python实例属性 的删除有两种方法,即:使用 del 语句和使用 delattr 函数,del 语句和 delattr 函数不仅可以删除实例属性还可以删除动态添加的实例属性。

Python del语句删除实例属性详解

语法

del class_instance.attr

参数

参数 描述
class_instance 需要删除的类实例。
attr 需要删除的属性。

说明

使用 del 语句,删除类实例 class_instance 的 attr 属性。

Python delattr语句删除类属性详解

语法

delattr(class_instance, attr)

参数

参数 描述
class_instance 需要删除的类实例。
attr 需要删除的属性。

说明

使用 delattr 函数,删除类实例 class_instance 的 attr 属性。

案例

删除实例属性

使用 del 删除实例属性

print("嗨客网(www.haicoder.net)") class Student: score = 99.95 def __init__(self, name): self.name = name stu = Student("HaiCoder") print("before del name =", stu.name) del stu.name print("name =", stu.name)

程序运行后,控制台输出如下:

25_python删除实例属性.png

我们创建了一个类 Student,接着,为该类添加了一个类属性 score,和一个 __init__ 方法以及一个实例属性 name。

接着,我们创建了一个类 Student 的实例 stu,并设置其 name 属性的值为 “HaiCoder”,此时,我们使用 print 打印其 name 属性的值,是我们设置的 “HaiCoder”。

最后,我们使用 del 删除实例属性之后,发现此时再次访问实例属性,程序报错,因此,此时属性已经被删除了。

删除实例属性

使用 delattr 删除实例属性

print("嗨客网(www.haicoder.net)") class Student: score = 99.95 def __init__(self, name): self.name = name stu = Student("HaiCoder") print("before del name =", stu.name) delattr(stu, 'name') print("name =", stu.name)

程序运行后,控制台输出如下:

26_python删除实例属性.png

我们使用 delattr 函数,删除了类 Student 的实例 stu 的实例属性 name,删除完之后,再次访问该属性,程序报错。

删除实例动态属性

使用 del 删除实例动态属性

print("嗨客网(www.haicoder.net)") class Student: score = 99.95 def __init__(self): pass stu = Student() stu.name = "haicoder" print("before del name =", stu.name) del stu.name print("name =", stu.name)

程序运行后,控制台输出如下:

27_python删除实例属性.png

我们使用 del 语句,删除了类 Student 的动态添加的类属性 name,删除完之后,再次访问该属性,程序报错。

删除类动态属性

使用 delattr 删除类动态属性

print("嗨客网(www.haicoder.net)") class Student: score = 99.95 def __init__(self): pass stu = Student() stu.name = "haicoder" print("before del name =", stu.name) delattr(stu, 'name') print("name =", stu.name)

程序运行后,控制台输出如下:

28_python删除实例属性.png

我们使用 delattr 函数,删除了类 Student 的实例 stu 的动态添加的类属性 name,删除完之后,再次访问该属性,程序报错。

Python删除实例属性总结

Python 的实例属性的删除有两种方法,即:使用 del 语句和使用 delattr 函数,del 语句和 delattr 函数不仅可以删除实例属性还可以删除动态添加的实例属性。Python del 语句删除实例属性语法:

del class_instance.attr

Python delattr 语句删除类属性语法:

delattr(class_instance, attr)