工厂函数
- 背景:Python2.2后统一类与类型,内置类型(int/float/list等)转为工厂函数
- 本质:类对象,调用即实例化对象
- 示例:int(123) → 实例化int类,返回整型对象
- 延伸:Python无处不对象,数值运算本质是对象间操作
算术运算魔法方法
- 核心:重写双下横线方法,自定义对象算术行为
- 基础方法:add(加)、sub(减)、mul(乘)、truediv(除)等
- 方法参数:self(自身对象)、other(另一个对象)
重写示例:恶作剧加减
- 类定义:NewInt继承int,重写__add__和__sub__
- 逻辑:__add__返回self - other,__sub__返回self + other
- 效果:NewInt(3)+NewInt(5)=-2,NewInt(3)-NewInt(5)=8
重写陷阱:无限递归
- 错误示例:TryInt类__add__直接return self + other
- 原因:self + other触发__add__,循环调用导致递归超限
- 解决方案:转为内置类型计算,如return int(self) + int(other)
其他算术相关魔法方法
- 乘法:mul
- 地板除:floordiv
- 取余:mod
- 幂运算:pow
- 位运算:lshift(左移)、rshift(右移)、and(按位与)等