8、python对象的方法、对象的封装、继承、多态、组合、设计模式

(一)对象的方法
1.1、方法没有重载,在同一类中定义多个同名方法,最后一个方法会覆盖前面的。可以通过 类名.方法变量=函数变量 新增或修改 类或对象 的方法。
1.2、方法也是属性,只不过可以通过()执行,python私有属性并不严格,名字前为__为私有属性(方法),类内部可以直接访问私有属性(方法),外部无法直接访问私有属性(方法),通过 对象._类名__私有属性(方法)名访问。
1.3、@proper 装饰器:实现获取私有变量,@变量名.setter 装饰器修改私有变量,两个装饰器可以定义同名方法,通过 对象.方法名 获取变量, 对象.方法名=值 修改变量。不需要通过 对象.方法名(参数列表) 调用。
(二)对象的封装、继承、多态、组合、设计模式
2.1封装
隐藏对象的属性和实现细节,仅展示必要的方法
2.2继承:
子类继承父类除构造方法外的所有成员(属性和方法),在父类的基础上进行扩展或改进,实现代码的重用。一个子类可以由多个直接的父类,默认父类为object类。子类无须定义可以直接调用父类的方法。在逻辑上子类的构造函数一定要显式调用父类的构造函数(通过 父类.__init__(self,参数列表) ),不然解释器不会去调用。父类的私有变量子类不能直接使用,要通过对象._父类__变量名使用。类名.mro()或类名.__mro__可以显示类的溯源。

class 类名(父类1,父类2,...):
	类定义

2.2.1、object类 __str__返回一个对于“对象的描述”,通过print(对象)显示的内容
2.2.2、所有的类都包括object里面所有的属性(方法)
2.2.3、方法重写:子类重写定义父类的方法
2.2.4、mor方法顺序解析,当继承的多个父类有同名的方法,按调用顺序从左到右确认优先级。
2.2.5、可以通过super().方法() 在子类调用父类的同名方法,super()是父类的定义,不是父类对象。

2.3、多态
不同对象的同一方法会产生不同的行为。属性没有多态,只有方法有。多态是实现基础是继承和方法重写。isinstance(子类对象,父类)为True
使用操作符实际上是在调用对象的方法,更新方法可以实现运算符的重载。
obj.__dict__对象的属性
obj.__class__对象的类
class.__bases__类的基类元组(多继承)
class.__base__类的基类
class.__mro__类层次结构
class.__subclasses__()子类列表

2.4、变量赋值:引用同一对象
浅拷贝:不拷贝对象的子对象,源对象和新对象的引用同一个子对象
深拷贝:拷贝对象的子对象,源对象和新对象的引用不同的子对象
2.5、"is a"的关系用继承;"has a"的关系用组合,对象引用子对象为对象属性。类()调用类的构造函数,方法()/函数()调用方法或函数。
2.6、设计模式:工厂模式,创建一个工厂类,对选择实现类、对象的创建统一管理控制,输入参数返回类的对象。单例模式:一个类只有一个实例

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值