Python 中的对象、类型、协议与函数
1. 算术运算与逻辑运算
在 Python 中,整数对浮点数的运算可能会有意外情况。例如:
>>> b.__radd__(a)
45.7
这反映出整数实际上对浮点数的运算并不“了解”,而浮点数对整数的运算有相应的处理,因为从数学角度,整数是一种特殊的浮点数。
__iadd__() 、 __isub__() 等方法用于支持原地算术运算符,如 a += b 和 a -= b 。若未定义原地运算符, a += b 会按 a = a + b 计算。
逻辑运算符 and 、 or 和 not 没有对应的方法来定义其行为。 and 和 or 采用短路求值,例如:
>>> True or 1/0
# Does not evaluate 1/0
True
这种未计算子表达式的行为无法用普通函数或方法的求值规则表达,它是 Python 内部的特殊处理。
2. 比较协议
对象的比较有多种方式,最基本的是使用
超级会员免费看
订阅专栏 解锁全文

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



