python2 vs python3-Funktion zu Methodenbindung

10

Liebe python 3-Experten,

Mit python2 könnte man folgendes tun (ich weiß, das ist etwas haarig, aber das ist nicht der Punkt hier: p):

%Vor%

Mit python3 gibt es keine ungebundenen Methoden mehr, nur Funktionen. Wenn ich das gleiche Verhalten möchte, klingt es so, als müsste ich einen benutzerdefinierten Deskriptor einführen, wie zum Beispiel:

%Vor%

so kann ich tun:

%Vor%

Gibt es einen anderen Weg, dies zu tun, ohne einen solchen Deskriptor zu schreiben?

TIA

    
sthenault 29.08.2012, 11:59
quelle

2 Antworten

1
%Vor%

Die Zeile b.method() ruft dann A.method(b,A()) auf. Dies bedeutet, dass jedes Mal ein A initialisiert wird. Um dies zu vermeiden:

%Vor%

Jedes Mal, wenn Sie b.method () für eine beliebige Instanz von B aufrufen, wird dieselbe Instanz von A als zweites Argument übergeben.

    
Sheena 07.11.2012 21:31
quelle
0

Nun, dein Code funktioniert auch nicht in Python 2, aber ich bekomme, was du versuchst zu tun. Und Sie können Lambda, wie in Sheenas Antwort, oder functools.partial verwenden.

%Vor%     
Lennart Regebro 12.05.2015 08:48
quelle

Tags und Links