##实现了__get__ and __set__ 的描述符称为数据描述符
##只实现__get__的描述符称为非数据描述符
## 描述符类 <定义另一个类特性可能访问方式的类>
class upper_string(object):
def __init__(self):
self._value = ''
def __get__(self,instance,klass):
return self._value
def __set__(self,instance,value):
self._value = value.upper()
class mine(object):
attribute = upper_string()
tem = mine()
print tem.attribute
tem.attribute = 'abc'
print tem.attribute
![](https://img2024.cnblogs.com/blog/35695/202407/35695-20240713070336838-1837943664.jpg)