Dies ist eine akademische Frage, mehr als eine praktische Frage. Ich versuche, in die Grundlagen von Python einzutauchen, und ich frage mich: Könnte ich die staticmethod
und Dekoratoren in reinem Python implementieren, wenn ich wollte?Können die staticmethod- und classmethod-Decorators in reinem Python implementiert werden?
Für staticmethod
könnte ich vielleicht einen Verweis auf die ursprüngliche Funktion behalten und es das erste Argument weglassen?
Für vielleicht könnte ich einen Verweis auf die ursprüngliche Funktion behalten und es den Typ des ersten Arguments statt das Argument selbst übergeben? (Wie würde ich damit umgehen, wenn ich direkt in der Klasse angerufen werde?)
Es ist wieder nicht so, dass ich es tatsächlich in meinen Programmen implementieren möchte; Ich möchte lernen, wie die Sprache daraus funktioniert. Wenn es möglich ist, würde ich Code-Beispiele wirklich schätzen. Wenn nicht, würde ich mich über Erklärungen freuen, warum dies theoretisch nicht möglich ist. Vielen Dank!
Edit: Danke für die Antwort und für den Verweis auf das Deskriptor-Protokoll! Als ein Mittel, mein Verständnis von Python weiter ausbauen würde Ich mag zwei Dinge fragen:
Könnte dies ohne Descriptor-Protokoll erfolgen, beispielsweise durch den __ __ Aufruf spezielle Methode in unseren Klassen zu implementieren?
Funktioniert das Deskriptorprotokoll in Python 2.7 und in Python 3.x auf die gleiche Weise?
Danke nochmal!
Ich werde diese Antwort akzeptieren, da es eine gute und vollständige Antwort auf meine ursprüngliche Frage ist. Allerdings werde ich es sehr schätzen, wenn Sie auch auf meine Bearbeitung antworten! Vielen Dank! – Tom