设为首页 - 加入收藏 ASP站长网(Aspzz.Cn)- 科技、建站、经验、云计算、5G、大数据,站长网!
热搜: 重新 试卷 文件
当前位置: 首页 > 运营中心 > 建站资源 > 优化 > 正文

史上最全Python面向对象编程(9)

发布时间:2019-03-26 14:51 所属栏目:21 来源:浪子燕青
导读:除了使用装饰器的方式将一个方法伪装成属性外,Python内置的builtins模块中的property()函数,为我们提供了第二种设置类属性的手段。 classPeople: def__init__(self,name,age): self.__name=name self.__age=age d

除了使用装饰器的方式将一个方法伪装成属性外,Python内置的builtins模块中的property()函数,为我们提供了第二种设置类属性的手段。

  1. class People: 
  2.  
  3.     def __init__(self, name, age): 
  4.         self.__name = name 
  5.         self.__age = age 
  6.  
  7.     def get_age(self): 
  8.         return self.__age 
  9.  
  10.     def set_age(self, age): 
  11.         if isinstance(age, int): 
  12.             self.__age = age 
  13.         else: 
  14.             raise ValueError 
  15.  
  16.     def del_age(self): 
  17.         print("删除年龄数据!") 
  18.  
  19.     # 核心在这句 
  20.     age = property(get_age, set_age, del_age, "年龄")     
  21.  
  22.  
  23. obj = People("jack", 18) 
  24. print(obj.age) 
  25. obj.age = 19 
  26. print("obj.age:  ", obj.age) 
  27. del obj.ag 

通过语句age = property(get_age, set_age, del_age, “年龄”)将一个方法伪装成为属性。其效果和装饰器的方法是一样的。

property()函数的参数:

  1. 第一个参数是方法名,调用 实例.属性 时自动执行的方法 
  2. 第二个参数是方法名,调用 实例.属性 = XXX时自动执行的方法 
  3. 第三个参数是方法名,调用 del 实例.属性 时自动执行的方法 
  4. 第四个参数是字符串,调用 实例.属性.__doc__时的描述信息。 
【责任编辑:庞桂玉 TEL:(010)68476606】
点赞 0

(编辑:ASP站长网)

网友评论
推荐文章
    热点阅读