Ich arbeite an einem kleinen Projekt, wo ich Methode Überladung für mul Methode verwenden muss. Aber das mul Methode hat eine andere Argumente.Methode Überladung funktioniert nicht, wenn Argumente unterschiedlich sind
Methode kann 2 Argument nehmen 1. ist selbst und 2. ist entweder Instanz oder Integer. Also, wenn Methode 2. Argument als Instanz nehmen, gibt es mir einen Fehler. Hier ist mein Code
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
Also, wenn ich versuche, das Programm, das ich Fehler bin immer zu laufen, dass
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
Kann mir das zu verstehen jemand helfen? Wie kann ich die überladene Methode aufrufen, ohne meine Methodensignatur zu ändern?
Python nicht Überlastung unterstützen. Schreiben Sie stattdessen eine Methode, in der Sie Parametertyp und Prozessparameter entsprechend überprüfen. –
Welche Python-Version verwenden Sie? Entfernen Sie das falsche Tag. –
Es bezieht sich nicht auf Version. –