Wie kann ich Initialisierungscode erstellen?
Wenn ich den __init__
-Konstruktor verwende, sag mir immer, dass die Parameter falsch sind.
Geben Sie auch ein Beispiel mit __new__
und einen mit super()
und warum sollten wir sie verwenden oder nicht verwenden.
app = webapp2.WSGIApplication ([('/', MainHandler)], debug = True)
Endlich verstanden ... Das Problem besteht darin, dass das Überschreiben von "webapp2.RequestHandler" eine spezielle Sonderbehandlung erfordert
aus dem webapp2-Handbuch:
Wenn Sie die Methode webapp2.RequestHandler. init () überschreiben möchten, müssen Sie sie aufrufen webapp2.RequestHandler.initialize () am Anfang der Methode. Es wird die aktuelle Anfrage stellen, Antwort und AppObjekte sind Attribute des Handlers. Beispiel:
%Vor%... und das war's ... funktioniert jetzt wie erwartet ; -)
Wenn Sie keine Argumente übergeben oder Ihren eigenen Code in der Methode __init__
einfügen, müssen Sie in der Regel keine erstellen. Sie verwenden einfach webapp2.RequestHandler
's __init__
Methode.
Wenn Sie tun müssen, müssen Sie noch webapp2.RequestHandler.__init__
:
Sie müssen eine self
Variable in allen Funktionen Ihrer Klasse haben. Sie müssen diese Variable einfügen, damit die Funktion in Ihrer Klasse funktioniert.
Eine gute Erklärung für die Notwendigkeit der Variable self
in jeder Funktion innerhalb einer Klasse finden Sie hier .