D20_property

Posted banbosuiyue

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了D20_property相关的知识,希望对你有一定的参考价值。

# ### 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的主要内容,如果未能解决你的问题,请参考以下文章

PAT乙级 1022. D进制的A+B (20)

D20_property

D20_2.1类中的方法

D20_1.1装饰器

乙_1022 D进制的A+B (20分)

乙_1022 D进制的A+B (20分)