gpt4 book ai didi

python - Python 中的运算符重载 : handling different types and order of parameters

转载 作者:太空狗 更新时间:2023-10-29 16:53:16 24 4
gpt4 key购买 nike

<分区>

我有一个简单的类,可以帮助对向量(即数字列表)进行数学运算。我的 Vector 可以乘以 Vector 的其他实例 标量(floatint).

在其他更强类型的语言中,我会创建一个方法来将两个 vector 相乘,并创建一个单独的方法来将 vectorint< 相乘/ float 。我对 Python 还是很陌生,不确定我将如何实现它。我能想到的唯一方法是覆盖 __mul__() 并测试传入参数:

class Vector(object):
...
def __mul__(self, rhs):
if isinstance(rhs, Vector):
...
if isinstance(rhs, int) or isinstance(rhs, float):
...

即使我那样做,我也会被迫将 Vector 乘以这样的标量:

v = Vector([1,2,3])

result = v * 7

如果我想颠倒乘法中操作数的顺序怎么办?

result = 7 * v

在 Python 中执行此操作的正确方法是什么?

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com