小甲鱼Python学习笔记

工厂函数

  • 背景: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(按位与)等