小甲鱼Python学习笔记

核心思想

  • 重写魔法方法 → 自定义对象运算逻辑
  • Python灵活性:初学者用默认逻辑,进阶者可定制化
  • 示例:重写int的__add__,实现加法变减法(5+3=2)

反运算魔法方法

  • 标识:算术方法名前加r,如__radd__对应__add__
  • 触发条件:左操作数未实现/不支持对应运算时,调用右操作数的反运算方法
  • 核心注意点:参数顺序,__radd__中self是右操作数,other是左操作数
  • 示例
    • 正常情况:A+B → 调用A的__add__
    • 反运算触发:1+B → 1无__add__,调用B的__radd__
    • 顺序陷阱:减法/除法等注重顺序的运算,重写反方法需注意操作数位置

增量运算魔法方法

  • 本质:赋值+算术运算的简写(如a += b
  • 对应方法:__iadd__(+=)、__isub__(-=)等
  • 特点:写法与普通算术魔法方法一致,定制增量赋值逻辑

一元操作符魔法方法

  • 定义:仅需一个操作数的运算
  • 常见方法及作用
    • __pos__:正号行为(如+a
    • __neg__:负号行为(如-a
    • __abs__:被abs()调用时的行为(取绝对值)
    • __invert__:按位取反行为(如~a
  • 实现逻辑:重写方法自定义返回值,一通百通