描述符__get__,__set__,__delete__
2024-10-19 03:28:23
描述符__get__
,__set__
,__delete__
# 描述符:1用来代理另外一个类的属性
# __get__():调用一个属性时,触发
# __set__():为一个属性赋值时触发
# __delete__():采用del输出属性时,触发
# 定义一个描述符的格式,里面包括有__get__,__set__,__delete__方法,这样的一个类就被叫做描述符
# 该描述符的作用是为另外一个类的类属性进行服务,另外一个类就是描述符的对象
class Foo:
def __get__(self, instance, owner): #取值
print('get触发')
def __set__(self, instance, value):#赋值
print('set触发')
def __delete__(self, instance):#删除
print('delete触发')
# 以上都被称为描述符,他的作用主要在于对另外一个类进行服务
class Bar: #这个类必须是新式类,当然py3中默认都是新式类.
x = Foo() #既然是描述符服务于另外一个类的属性,那么这里就用上了,即将这个类作用于另外一个类的属性来使用
f = Bar() #这些地方被触发
f.x #get触发 这样就触发了这样一个描述符里面的get方法
f.x = 'age' #set触发
f.x #get触发
del f.x #delete触发
最新文章
- resolv.conf
- bootstrap3 兼容IE8浏览器
- 找回Reshaprer的Alt+Enter快捷键的方法
- ios学习笔记(二)第一个应用程序--Hello World
- How to change Jenkins default folder on Windows?
- SignalR 2.0 系列:SignalR的服务器广播
- PASCALmath库
- HDU 1160 FatMouse's Speed(DP)
- 通过redis-rdb-tools分析redis内存使用量
- JS 对象、HTML事件处理、JS 类型转换、Date
- 梳理下phpmyadmin改root密码后登录不上的问题。
- C# 各种相对路径
- 在TTF字体中提取想要的文字
- JVM学习之类加载
- 进程互斥(锁)------------------>;一个坑
- 使用java程序对oracle添加触发器时,报错:索引中丢失 IN 或 OUT 参数:: 1
- Angular2 使用CLI创建新项目
- tunnel sw
- Http协议请求头、响应头、响应码
- poj3311