python_day12(笔记及练习)

本文详细介绍了Python中的封装和继承。封装从数据和行为角度阐述,强调了私有成员和@property装饰器的作用。继承部分讨论了语法、内置函数以及单、多继承的概念,还提到了多态在设计上的意义。文章旨在帮助读者理解面向对象编程中的核心概念。
摘要由CSDN通过智能技术生成

封装
数据角度讲
1. 定义:
将一些基本数据类型复合成一个自定义类型。
2. 优势:
将数据与对数据的操作相关联。
代码可读性更高(类是对象的模板)。
行为角度讲
1. 定义:
类外提供必要的功能,隐藏实现的细节。
2. 优势:
简化编程,使用者不必了解具体的实现细节,只需要调用对外提供的功能。
3. 私有成员:
(1) 作用:无需向类外提供的成员,可以通过私有化进行屏蔽。
(2) 做法:命名使用双下划线开头。
(3) 本质:障眼法,实际也可以访问。
私有成员的名称被修改为:_类名__成员名,可以通过_dict_属性或dir函数查看。
4. 属性@property:
公开的实例变量,缺少逻辑验证。私有的实例变量与两个公开的方法相结合,又使调用者的操作略显复杂。而属性可以将两个方法的使用方式像操作变量一样方便。
(1) 定义:
@property
def 属性名(self):
return self.__属性名
@属性名.setter
def 属性名(self, value):
self.__属性名= value
(2) 调用:
对象.属性名 = 数据
变量 = 对象.属性名
(3) 说明:
通常两个公开的属性,保护一个私有的变量。
@property 负责读取,@属性名.setter 负责写入
只写:属性名= property(None, 写入方法名)
设计角度讲
1. 定义:
(1) 分而治之
将一个大的需求分解为许多类,每个类处理一个独立的功能。
(2) 变则疏之
变化的地方独立封装,避免影响其他类。
(3) 高 内 聚
类中各个方法都在完成一项任务(单一职责的类)。
(4) 低 耦 合
类与类的关联性与依赖度要低(每个类独立),让一个类的改变,尽少影响其他类。
2. 优势:
便于分工,便于复用,可扩展性强。

继承
语法角度讲
继承方法
1. 代码:
class 父类:
def 父类方法(self):
方法体

class 子类(父类):
def 子类方法(self):
方法体

儿子 = 子类()
儿子.子类方法()
儿子.父类方法()

2. 说明:

子类直接拥有父类的方法.
内置函数
isinstance(对象, 类型)
返回指定对象是否是某个类的对象。
issubclass(类型,类型)
返回指定类型是否属于某个类型。
继承数据
1. 代码
class 子类(父类):
def init(self,参数列表):
super().init(参数列表)
self.自身实例变量 = 参数
2. 说明
子类如果没有构造函数,将自动执行父类的,但如果有构造函数将覆盖父类的。此时必须通过super()函数调用父

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值