相关疑难解决方法(0)

在Python中继承类"对象"的目的是什么?

所有Python内置object函数都是子类,我遇到了许多用户定义的类.为什么?这堂课的目的是object什么?这只是一个空洞的课,对吧?

python object deprecated future-proof new-style-class

52
推荐指数
2
解决办法
1万
查看次数

Python中的运算符重载:处理不同类型和参数的顺序

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

在其他更强类型的语言中,我将创建一个方法来将两个vectors和一个单独的方法相乘以乘以vectorint/ 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中这样做的正确方法是什么?

python class operator-overloading operators

16
推荐指数
2
解决办法
3550
查看次数