list () benötigt höchstens 1 Argument (3 gegeben)

8

Ich möchte den Vektor wie folgt erhalten: v:[1.0, 2.0, 3.0]

Hier ist mein Code:

%Vor%

Aber als ich tippte: a = VECTOR(1,2,3) es ging so schief:

  

TypeError: list () benötigt höchstens 1 Argument (3 gegeben)

Wie kann ich es auflösen?

    
Reginold Lu 06.05.2015, 07:35
quelle

2 Antworten

23

Das Problem ist, dass Sie den Namen des Konstruktors falsch geschrieben haben. Ersetzen Sie _init_ durch __init__ .

Hier ist der feste Code:

%Vor%

Und die Demonstration, dass es funktioniert:

%Vor%

Ich möchte Ihnen auch ein paar zusätzliche Kommentare geben:

  • Sie sollten den Codierungsstil nach PEP8 korrigieren (das ist ein Dokument, das jeder Python-Entwickler lesen sollte) vollständig);
  • Sie können wahrscheinlich etwas mehr Pythonic (danke Benjamin);
  • Vererbung ist nicht die einzige Möglichkeit, das zu tun, Sie können auch ein Attribut verwenden, um die Liste zu speichern und die relevanten Methoden zu definieren (danke Veedrac);
  • Sie könnten auch super verwenden (siehe paddyg's Antwort);

Notiz bearbeiten: Ich habe zu dieser Lösung die entsprechenden Hinweise in den Kommentaren hinzugefügt.

    
Maxime Chéramy 06.05.2015 07:39
quelle
-2

BEARBEITEN Wenn Sie mit super(VECTOR, list).__init__() aufrufen, müssen Sie nicht selbst übergeben. Außerdem müssen Sie 1,2,3 als Liste übergeben [1,2,3]

    
paddyg 06.05.2015 07:40
quelle

Tags und Links