【写在前面】

  本帖归属于装饰器单元的学习,可以点击关键词‘装饰器’查看其他博文讲解

【正文部分】

  property属性:将类方法用类属性的形式进行调用

class Good:
def __init__(self,name):
self.__name = name @property
def name(self): # 只能由self参数
return self.__name # 必须要有返回值 @property
def setname(self):
self.__name = 'Liming' good = Good('Lihua')
# print(good.__name) # 报错,无法访问私有属性
print(good.name)
print(good.setname)
print(good.name)
#输出结果
Lihua
None
Liming

结论:

1、property属性的创建过程

  构造装饰器:@property

  装饰过程: property(类方法)

2、property属性的应用:

  可以简化流程,对私有属性的获取和设置进行简化。

  (1)测试代码表名类的外部是不能对类的私有属性进行访问的,所以通过property装饰器,实现将类方法装饰成属性的形式,对私有属性进行访问

  (2)由于类外部不能直接访问私有属性,所以可以通过property装饰器,实现更改私有属性的目的。

【写在最后】

  property装饰器的第二个作用:对私有属性进行更改,还有需要进行优化的地方,这里的更改是手动更改赋值,应该是有更方方便的方法来实现,譬如调用的时候再调用的位置进行传参设置。先标记一下,以后再来补充,有知道的小伙伴记得call我或留言,感激不尽,一起学习鸭!

博主尊重原创,也支持原创,如有侵权,联系博主删帖,转帖请注明出处!

浅尝装饰器--property装饰器的更多相关文章

  1. 浅尝装饰器和AOP

    [写在前面] 参考文章:https://www.cnblogs.com/huxi/archive/2011/03/01/1967600.html[从简单的例子入手进行讲解,由浅入深,很到位] 装饰器部 ...

  2. 面向对象(三)--多态、封装、property装饰器

    一.多态与多态性 1.什么是多态 多态指的是同一种类/事物的不同形态 class Animal: def speak(self): pass class People(Animal): def spe ...

  3. 面向对象(三)——组合、多态、封装、property装饰器

    组合.多态.封装.property装饰器 一.组合 1.什么是组合 组合指的是某一个对象拥有一个属性,该属性的值是另外一个类的对象 class Foo(): pass class Bar(): pas ...

  4. Python 利用@property装饰器和property()方法将一个方法变成属性调用

    在创建实例属性时,如果直接把实例属性暴露出去,虽然写起来简单,但是存在一些风险,比如实例属性可以在外部被修改. 为了限制外部操作,可以通过一个set_score()方法来设置成绩,再通过一个get_s ...

  5. 绑定方法和隐藏属性之property装饰器

    目录 一:绑定方法 1.绑定给对象的方法 2.绑定给类的方法 3.非绑定方法之静态方法 二,隐藏属性 1.如何隐藏属性 三,property 装饰器 一:绑定方法 1.绑定给对象的方法 class P ...

  6. python装饰器--@property

    @property 考察 Student 类: class Student(object): def __init__(self, name, score): self.name = name sel ...

  7. Python的property装饰器的基本用法

    Python的@property装饰器用来把一个类的方法变成类的属性调用,然后@property本身又创建了另一个装饰器,用一个方法给属性赋值.下面是在类中使用了@property后,设置类的读写属性 ...

  8. 面向对象之组合、封装、多态、property装饰器

    概要: 组合 封装 property装饰器 多态 Python推崇鸭子类型:解耦合,统一标准(不用继承) 1. 组合 继承:会传递给子类强制属性 组合:解耦合,减少占用内存.如:正常继承,如果一个班级 ...

  9. import导入模块,==和is,浅拷贝和深拷贝,进制转换,位运算,私有化,property装饰器

    '''import导入模块'''import sysprint(sys.path) sys.path.append('D://ASoft/Python/PycharmProjects')import ...

随机推荐

  1. CSS布局中最小高度的妙用

    CSS布局中最小高度的妙用 --最小高度可以设定一个BOX的最小高度,当其内容较少时时,也能保持BOX的高度为一定,超出就自动向下延伸最小高度可以设定一个BOX的最小高度,当其内容较少时时,也能保持B ...

  2. 【Python机器学习实战】决策树与集成学习(四)——集成学习(2)GBDT

    本打算将GBDT和XGBoost放在一起,但由于涉及内容较多,且两个都是比较重要的算法,这里主要先看GBDT算法,XGBoost是GBDT算法的优化和变种,等熟悉GBDT后再去理解XGBoost就会容 ...

  3. Linux系统下的软件管理(rpm)、搭建第三方软件库、yum的黑名单

    对wps-office进行模糊匹配照样可以查找出该软件yum clean all ? ? ? ?##清空yum缓存识别新配置 测验安装wps软件: 安装成功即可使用办公软件 1.yum install ...

  4. Microsoft Remote Desktop 通过 .rdp 文件登录

    最近在淘宝上买了「市场洞察」子账号,说是子账号,其实是需要登录到他们的 Windows 服务器上才能用的.并且子账号也是 5-6 个人共用的,且不说远程服务器很老又有延迟,经常是我想添加一个监控店铺或 ...

  5. 为 Memcached 构建基于 Go 的 Operator 示例

    Operator SDK 中的 Go 编程语言支持可以利用 Operator SDK 中的 Go 编程语言支持,为 Memcached 构 建基于 Go 的 Operator 示例.分布式键值存储并管 ...

  6. jq的slideToggle效果

    slideToggle() 方法通过使用滑动效果(高度变化)来切换元素的可见状态. 如果被选元素是可见的,则隐藏这些元素,如果被选元素是隐藏的,则显示这些元素. 例子:一个简单的下拉菜单效果----& ...

  7. [考试总结]noip模拟41

    发现长时间鸽博客会导致 rp--,所以今天来补一补 这个题目其实不是很毒瘤,然而是非常毒瘤... 题目不说请就是非常非常的烦人 首先 \(T1\) 就整整有两个歧义的地方,也就是说我们一共有 \(4\ ...

  8. rtl8188eu 驱动移植

    测试平台 宿主机平台:Ubuntu 16.04.6 目标机:iMX6ULL 目标机内核:Linux 4.1.15 rtl8188eu 驱动移植 在网上下载Linux版的驱动源码: wifi驱动的实现有 ...

  9. node.js一头雾水

    开始学习node.js,一头雾水,谁可以告诉我怎么学......欢迎评论留言怎么学node.js的,谢谢 node,node,node,给自己加油 放一张自己设计的日历图鼓励一下:):):),加油.. ...

  10. 硕盟type-c转接头|四合一多功能扩展坞

    硕盟SM-T54是一款 TYPE C转HDMI+VGA+USB3.0+PD3.0四合一多功能扩展坞,支持四口同时使用,您可以将含有USB 3.1协议的电脑主机,通过此产品连接到具有HDMI或VGA的显 ...