【发布时间】:2019-02-08 11:37:03
【问题描述】:
我尝试在方法重载中添加 numpy 数组,但出现 TypeError: add() missing 1 required positional argument: 'n3' 之类的错误
import numpy as np
class addition:
def add(self,n1,n2):
return n1+n2
def add(self,n1,n2,n3):
return n1+n2+n3
s=np.array([[1,2,3],[3,4,4]])
s1=np.array([[1.0,2,3],[3,4,4]])
s3=np.array([[1.0,2.4,3.7],[3,4,4]])
c=addition()
print(c.add(1,2))
【问题讨论】:
-
Python 中不存在方法重载之类的东西。只有第二个版本真正获胜。
-
查看副本,了解如何定义可以采用可变数量参数的方法。
-
@MartijnPieters 不知道为什么,但只有 dup 中的第 5 个答案(通过投票)提到了明星论点。
-
@DeepSpace:这只是接受可变数量参数的一种方式。
*args仅在您想接受 任意数量的参数(从 0 到sys.maxsize)时有用。这并不总是正确的选择。
标签: python class numpy overloading