Der Wert new.add
, den Sie k
zuweisen, ist eine Funktion. In Python 2 wäre es ein spezielles "ungebundenes Methoden" -Objekt gewesen, aber Ihre Ausgabe legt nahe, dass Sie Python 3 verwenden (wo ungebundene Methoden nicht mehr existieren, außer konzeptionell).
Wie jede Funktion können Sie k
nennen, wenn Sie wollen, was Werte vorbei angemessen sind self
für, one
und two
. Zum Beispiel k("foo", 1, 2)
(die 3
zurückgibt). Das Argument self
sollte traditionell eine Instanz der new
-Klasse sein, obwohl es in Python 3 nicht durch irgendetwas erzwungen wird (eine Überprüfung dafür war der Zweck von ungebundenen Methodenobjekten in Python 2). Daher hat es im obigen Beispiel funktioniert, eine Zeichenfolge zu übergeben, da self
im Funktionskörper für nichts verwendet wird. (Kompliziertere Methoden schlagen normalerweise fehl, wenn Sie ein unangemessenes Argument als self
übergeben.)
Die Methode zum Aufrufen von Methoden besteht normalerweise darin, zuerst eine Instanz einer Klasse zu erstellen und dann die Methode für die Instanz aufzurufen. Dies bewirkt, dass die Instanz als erstes Argument automatisch übergeben werden:
x = new()
x.add(1, 2) # returns 3, x got passed as self
drucken wird. Ja. Ich benutze Python 3 –