私はmulメソッドのメソッドオーバーロードを使用する必要がある小さなプロジェクトで作業しています。しかし、mulメソッドには異なる引数があります。引数が異なると、メソッドのオーバーロードが機能しない
メソッドは引数2を取ることができます。第1引数は自己であり、第2引数はインスタンスまたは整数です。 Methodが第2引数をインスタンスとして取ると、エラーが出ます。 は、ここで私は私が
File "Al.py", line 102, in <module> main() File "Al.py", line 88, in main mul() File "Al.py", line 47, in mul v3 = v1 * v2 File "Al.py", line 21, in __mul__ x = self.x*n
は、誰かが私はこれを理解するのに役立つことができ、エラーを取得していたプログラムを実行しようとしていたときに
import math
class Vector:
def __init__(self, x, y):
self.x = x
self.y = y
def __mul__(self,v1):
x = self.x * v1.x
y = self.y * v1.y
return Vector(x,y)
def __mul__(self,n):
x = self.x*n
y = self.y*n
return Vector(x,y)
v1 = getVector()
v2 = getVector()
v3 = v1 * v2
v4 = 1
v5 = getVector()
v6 = v4 * v5
だから私のコードですか?メソッドのシグネチャを変更せずに、オーバーロードされたメソッドを呼び出すにはどうすればよいですか?
Pythonがオーバーロードをサポートしていません。代わりに、パラメータタイプとプロセスパラメータをそれに応じてチェックする1つのメソッドを記述します。 –
どのPythonバージョンを使用していますか?間違ったタグを削除してください。 –
バージョンには関係ありません。 –