描述符__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触发

最新文章

  1. resolv.conf
  2. bootstrap3 兼容IE8浏览器
  3. 找回Reshaprer的Alt+Enter快捷键的方法
  4. ios学习笔记(二)第一个应用程序--Hello World
  5. How to change Jenkins default folder on Windows?
  6. SignalR 2.0 系列:SignalR的服务器广播
  7. PASCALmath库
  8. HDU 1160 FatMouse's Speed(DP)
  9. 通过redis-rdb-tools分析redis内存使用量
  10. JS 对象、HTML事件处理、JS 类型转换、Date
  11. 梳理下phpmyadmin改root密码后登录不上的问题。
  12. C# 各种相对路径
  13. 在TTF字体中提取想要的文字
  14. JVM学习之类加载
  15. 进程互斥(锁)------------------>一个坑
  16. 使用java程序对oracle添加触发器时,报错:索引中丢失 IN 或 OUT 参数:: 1
  17. Angular2 使用CLI创建新项目
  18. tunnel sw
  19. Http协议请求头、响应头、响应码
  20. poj3311

热门文章

  1. 关于音频总线IIS的学习---Verilog
  2. LiveBindings如何绑定一个对象(转)
  3. Django2.0资料
  4. ubuntu安装nginx及其默认目录结构
  5. IIC时序详解
  6. dll 恐怖的代码调整
  7. Java中线程池的实现原理
  8. Android 开发 框架系列 Android-Universal-Image-Loader 图片加载使用demo
  9. leetcode33
  10. Mac ssh 免密码登录 Mac 或者 Linux