13、Python面向对象编程深入解析

Python面向对象编程深入解析

1. 多重继承与Mixin类

在Python编程中,多重继承是一个需要谨慎使用的特性。某些类层次结构可能会被Python以 TypeError 拒绝,例如:

class X(object): pass
class Y(X): pass
class Z(X,Y): pass  # TypeError.
# Can't create consistent method resolution order

在这个例子中,方法解析算法拒绝类 Z ,因为它无法确定基类的合理顺序。在继承列表中,类 X 出现在类 Y 之前,所以必须先检查 X 。然而,类 Y 更特殊,因为它继承自 X 。因此,如果先检查 X ,就无法解析 Y 中的特殊方法。在实践中,这些问题很少出现,如果出现,通常表明程序存在更严重的设计问题。

一般来说,在大多数程序中最好避免使用多重继承。不过,有时会用它来定义所谓的Mixin类。Mixin类通常定义一组方法,这些方法旨在“混入”其他类中,以添加额外的功能(几乎就像宏一样)。例如之前例子中的 DepositCharge WithdrawCharge 类,它们为包含它们作为基类之一的类添加了新方法,如 de

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值