对象的描述器
描述器定义:具有__get__(),__set__(),__delete(),这些方法的对象叫做描述器。
重写:描述器是一个有“绑定行为”的对象属性 (object attribute),它的访问控制被描述器协议方法重写。
使用:在面向对象编程时,如果一个类的属性有相互依赖的关系时,使用描述器来编写代码可以很巧妙的组织逻辑。
例子:
#!/usr/bin/env python3
# -*- coding: UTF-8 -*-
class User(object):
def __init__(self,name,sex):
self.name = name
self.sex = sex
def __get__(self, obj, objtype):
print('获取name值')
return self.name
def __set__(self, obj, value):
print('设置name值')
self.name = value
class Myclass(object):
x = User('一','男')
y = 5
if __name__=='__main__':
m = Myclass()
print(m.x)
print('\n')
m.x = '二'
print(m.x)
print('\n')
print(m.x)
print('\n')
print(m.y)