赞
赏
Python 的 实例属性 的删除有两种方法,即:使用 del 语句和使用 delattr 函数,del 语句和 delattr 函数不仅可以删除实例属性还可以删除动态添加的实例属性。
del class_instance.attr
参数 | 描述 |
---|---|
class_instance | 需要删除的类实例。 |
attr | 需要删除的属性。 |
使用 del 语句,删除类实例 class_instance 的 attr 属性。
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)
程序运行后,控制台输出如下:
我们创建了一个类 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)
程序运行后,控制台输出如下:
我们使用 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)
程序运行后,控制台输出如下:
我们使用 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)
程序运行后,控制台输出如下:
我们使用 delattr 函数,删除了类 Student 的实例 stu 的动态添加的类属性 name,删除完之后,再次访问该属性,程序报错。
Python 的实例属性的删除有两种方法,即:使用 del 语句和使用 delattr 函数,del 语句和 delattr 函数不仅可以删除实例属性还可以删除动态添加的实例属性。Python del 语句删除实例属性语法:
del class_instance.attr
Python delattr 语句删除类属性语法:
delattr(class_instance, attr)