码迷,mamicode.com
首页 > 其他好文 > 详细

D20_property

时间:2019-11-09 17:36:40      阅读:63      评论:0      收藏:0      [点我收藏+]

标签:装饰器   更改   self   pass   设置   res   elf   顺序   bsp   

# ### property

把方法变成属性:用来控制成员的 获取 , 设置 , 删除
@property 获取
@方法名.setter 设置property
@方法名.deleter 删除

# 写法一
class MyClass():

  def __init__(self,name):
    self.name = name
  # 获取
  @property
  def username(self):
    # return self.name
    pass

  # 设置
  @username.setter
  def username(self,val):
    # self.name = val
    pass

  # 删除
  @username.deleter
  def username(self):
    # del self.name
    pass

obj = MyClass("奥特曼")
# 获取username 触发property修饰的方法
res = obj.username
print(res)

# 设置username 触发username.setter修饰的方法 #设置就是指更改
obj.username = "小怪兽"

print(obj.username)

# del obj.username 触发sername.deleter装饰器修饰的方法
del obj.username
print(obj.username)

 

# 写法二
class MyClass():
  def __init__(self,name):
    self.name = name

  # 获取属性
  def get_username(self):
    return self.name

  # 设置属性
  def set_username(self,val):
    self.name = val

  # 删除属性
  def del_username(self):
    # del self.name
    pass

# 必须按照这个顺序进行传递:(获取方法 , 设置方法 , 删除方法),且只能传这3个参数
username = property(get_username,set_username,del_username)

当获取,设置,删除对象的成员时, 触发上述方法,

 

 

D20_property

标签:装饰器   更改   self   pass   设置   res   elf   顺序   bsp   

原文地址:https://www.cnblogs.com/banbosuiyue/p/11826745.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!