python_描述符的其他书写格式

描述符中的组成:
临时变量 自己定义
_ _get__ 管理获取值
__set__ 管理设置值
__delete__ 管理删除值

描述符的第一种格式:

描述符的类
被管理的成员的类

描述符的第二种格式:

描述符融合到被管理的成员类当中(使用了property函数)
例:
#声明一个邮箱类
class Email:
    #username = '匿名用户'  #要管理的用户名
    isallowdel_username = False#是否允许删除的标志
    #------------描述符使用的区域 start--------------
    #初始化方法
    def __init__(self):
        self.tmpvar = '匿名用户'
    #管理获取的描述符的方法
    def getusername(self): #只有一个self
        #设置相关管理
        result = self.tmpvar[0] + '*' + self.tmpvar[-1]
        return result
    #管理描述符设置的方法
    def setusername(self,val):
        #管理设置操作
        self.tmpvar = val + 'sama'
    #管理描述符删除的方法
    def deleteusername(self):
        #管理删除操作
        if self.isallowdel_username == True:
            del self.tmpvar
    # ------------描述符使用的区域 end--------------
    # 将成员交接给描述符管理(函数名自己定义)
    username = property(getusername,setusername,deleteusername)
# 在类外部实例化对象
mail = Email()
# 获取用户名
#print(mail.username)
# 设置用户名
#mail.username = '王老五'
#print(mail.username)
# 删除用户名
print(mail.username)
del mail.username
print(mail.username)

描述符的第三种格式:

描述符融合到被管理的成员类当中(使用装饰器语法组合@property)
例:
class Email:
    #成员属性
    #username = '匿名用户' #将被描述
    def __init__(self):
        self.tmpvar = '匿名用户'
    @property #将用户名username交给描述符管理  【默认用作获取的方法】
    def username(self):
        #管理获取操作
        result = self.tmpvar[0] + '*' + self.tmpvar[-1]
        return result
    @username.setter
    def username(self,val):#用于设置的方法
        #管理设置操作
        self.tmpvar = val
    @username.deleter
    def username(self):#用于删除的方法
        del self.tmpvar
#实例化对象
mail = Email()
#获取操作
print(mail.username)
#设置操作
mail.username = '不灵不灵的闪闪发光'
#print(mail.username)
#删除操作
print(mail.username)
del  mail.username
#print(mail.username)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值