Python魔法方法(17):__delete __(self, instance) 方法
Posted youzhouliu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python魔法方法(17):__delete __(self, instance) 方法相关的知识,希望对你有一定的参考价值。
Python 的对象天生拥有一些神奇的方法,它们总被双下划线所包围,它们是面向对象的 Python 的一切。它们是可以给你的类增加魔力的特殊方法,如果你的对象实现(重载)了某一个魔法方法,那么这个方法就会在特殊的情况下自动被 Python 所调用。
功能
定义描述符的值被删除时的行为。
参数
self 表示描述符类的对象,instance 表示被代理的类的实例对象。
返回值
无。
示例
class MyTest(object):
def __init__(self, name):
self.name = name
def __set__(self, instance, value):
instance.__dict__[self.name] = value
def __delete__(self, instance):
print(f'删除指定属性。')
instance.__dict__.pop(self.name)
class MyTest2(object):
name = MyTest('name_val')
sample = MyTest2()
sample.name = 'zhang san'
print(f'删除前,对象中的属性:sample.__dict__')
# 属性被删除了
del sample.name
print(f'删除后,对象中的属性:sample.__dict__')
使用__delete__方法时,如果发现属性值,则该方法应该删除属性值,否则将引发AttributeError异常。
以上是关于Python魔法方法(17):__delete __(self, instance) 方法的主要内容,如果未能解决你的问题,请参考以下文章