Python学习笔记(十七)使用@property,多重继承

使用@property

Python内置的@property装饰器就是负责把一个方法变成属性调用的


把一个getter方法变成属性,只需要加上@property就可以了,此时,@property本身又创建了另一个装饰器@score.setter,负责把一个setter方法变成属性赋值,于是,我们就拥有一个可控的属性操作

@property广泛应用在类的定义中,可以让调用者写出简短的代码,同时保证对参数进行必要的检查,这样,程序运行时就减少了出错的可能性。


"单下划线" 开始的成员变量叫做保护变量,意思是只有类对象和子类对象自己能访问到这些变量;

"双下划线" 开始的是私有成员,意思是只有类对象自己能访问,连子类对象也不能访问到这个数据。

同时单下划线为了便于测试


@peoperty 是继承或者说限定一个不变的属性,他只能读取,不能接收

@继承者.setter 是将上面的不变属性进行数据接收并且进行数据传递的


多重继承

MixIn的目的就是给一个类增加多个功能,这样,在设计类的时候,我们优先考虑通过多重继承来组合多个MixIn的功能,而不是设计多层次的复杂的继承关系。


Python自带的很多库也使用了MixIn。举个例子,Python自带了TCPServer和UDPServer这两类网络服务,而要同时服务多个用户就必须使用多进程或多线程模型,这两种模型由ForkingMixIn和ThreadingMixIn提供。通过组合,我们就可以创造出合适的服务来。

比如,编写一个多进程模式的TCP服务,定义如下:

class MyTCPServer(TCPServer, ForkingMixIn):

    pass


由于Python允许使用多重继承,因此,MixIn就是一种常见的设计。

只允许单一继承的语言(如Java)不能使用MixIn的设计。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 要点: 函数式编程:注意不是“函数编程”,多了一个“式” 模块:如何使用模块 面向对象编程:面向对象的概念、属性、...
    victorsungo阅读 1,697评论 0 6
  • 定义类并创建实例 在Python中,类通过 class 关键字定义。以 Person 为例,定义一个Person类...
    绩重KF阅读 4,110评论 0 13
  • “在等什么?”路过的一个行人说, “等雨。” “可天上没有一片乌云啊。”行人感到很奇怪,昨天天气预报已经说了,今天...
    扬灵川阅读 474评论 2 8
  • 对于高血压患者来说,降压是非常重要的一个缓解病情的办法。那么如何降压效果好呢?小编带大家来了解一下。 醋泡黄豆 材...
    鹏尚阁养生阅读 220评论 0 0
  • 木叶 你以为只是青春,其实我是热血…… 如果说人生是一列自修的火车,从原材料,到组...
    木叶Claudia阅读 495评论 0 1

友情链接更多精彩内容