• Python面向对象(类的成员之属性)


    day24

    类的成员之属性

     1 class Foo():
     2     def bar(self):
     3         print("bar")
     4 
     5     @property
     6     def per(self):
     7         print('123')
     8         return 1
     9 
    10 obj = Foo()
    11 obj.bar()
    12 
    13 r = obj.per#实际上是方法,但通过字段的方式访问
    14 print(r)
    实际上是方法,但通过字段的方式访问。
    执行结果:
    bar
    123
    1
    
    Process finished with exit code 0

     @property,@per.setter,@per.deleter

     1 class Foo():
     2     def __init__(self):
     3         self.name = 'a'
     4 
     5     def bar(self):
     6         print("bar")
     7 
     8     @property#获取
     9     def per(self):
    10         print('1234')
    11         return 1
    12 
    13     @per.setter#设置
    14     def per(self, val):
    15         print(val)
    16 
    17     @per.deleter
    18     def per(self):
    19         print(666)
    20 obj = Foo()
    21 obj.bar()
    22 
    23 r = obj.per#实际上是方法,但通过字段的方式访问,对应@property
    24 print(r)
    25 
    26 obj.per = 123#对应 @per.setter
    27 del obj.per#对应 @per.deleter

    执行结果:

    bar
    1234
    1
    123
    666
    
    Process finished with exit code 0

     属性的另一种表达方式

     1 class Foo:
     2 
     3     def f1(self):
     4         return 123
     5 
     6     def f2(self,v):
     7         print(v)
     8     def f3(self):
     9         print('del')
    10 
    11     per = property(fget=f1,fset=f2,fdel=f3,doc='adfasdfasdfasdf')
    12 
    13     # @property
    14     # def per(self):
    15     #     return 123
    16 
    17 
    18 obj = Foo()
    19 ret = obj.per#对应与@property
    20 print(ret)
    21 
    22 obj.per = 123456#对应于@per.setter
    23 
    24 del obj.per#对应于@per.deleter

     property中最多写三个函数,doc为介绍。

    Django中有用到以上方式。

    执行结果:

    123
    123456
    del
    
    Process finished with exit code 0
  • 相关阅读:
    C#下给数字前面补0的方法
    Notepad++ xml 文件不能语法着色的问题解决
    excel 技巧
    编译时报警 implicit declaration of function
    配置ASP.NET平台时遇到的“访问IIS元数据库失败”解决方案
    用360安全卫士批量本地快速给系统打补丁【转贴】
    新雨情系统随笔
    我的开发博客开通了
    JQuery资料
    IGNORE_DUP_KEY = OF的作用
  • 原文地址:https://www.cnblogs.com/112358nizhipeng/p/9825619.html
Copyright © 2020-2023  润新知