所有Python内置object函数都是子类,我遇到了许多用户定义的类.为什么?这堂课的目的是object什么?这只是一个空洞的课,对吧?
我有一个简单的类,可以帮助对向量进行数学运算(即数字列表).我Vector可以乘以其他实例Vector 或标量(float或int).
在其他更强类型的语言中,我将创建一个方法来将两个vectors和一个单独的方法相乘以乘以vector和int/ float.我仍然是Python的新手,我不确定如何实现它.我能想到的唯一方法是覆盖__mul__()并测试传入的参数:
class Vector(object):
...
def __mul__(self, rhs):
if isinstance(rhs, Vector):
...
if isinstance(rhs, int) or isinstance(rhs, float):
...
Run Code Online (Sandbox Code Playgroud)
即使我这样做,我也会被迫乘以这样Vector的标量:
v = Vector([1,2,3])
result = v * 7
Run Code Online (Sandbox Code Playgroud)
如果我想在乘法中颠倒操作数的顺序怎么办?
result = 7 * v
Run Code Online (Sandbox Code Playgroud)
在Python中这样做的正确方法是什么?