Python 类编码基础全解析
1. 运算符重载方法
在 Python 中,像 __init__ 、 __add__ 和 __str__ 这类特殊命名的方法会被子类和实例继承,就如同类中定义的其他名称一样。若某个类中未编写这些方法,Python 会像往常一样在其所有超类中查找。运算符重载方法名并非内置或保留字,它们只是 Python 在对象处于不同上下文时会查找的属性。Python 通常会自动调用这些方法,但有时也可通过代码手动调用。
1.1 返回结果情况
部分运算符重载方法(如 __str__ )需要返回结果,而其他方法则更具灵活性。例如, __add__ 方法会通过使用结果值调用 ThirdClass 来创建并返回其类的一个新实例对象,这又会触发 __init__ 方法来初始化结果。这是一种常见的约定,也解释了为何代码中的 b 具有显示方法,因为它也是 ThirdClass 对象,这本质上传播了类型。
与之相反, mul 方法通过重新赋值 self 属性来就地更改当前实例对象。虽然我们可以重载 * 表达式来实现后者,但这与内置类型(如数字和字符串)中 * 的行为差异过大,内置类型的 * 操作总是会创建新对象。通常,重载运算符的行为应与内置运
超级会员免费看
订阅专栏 解锁全文
31万+

被折叠的 条评论
为什么被折叠?



