Wie zu initialisieren leere Liste?
Jedes mal, wenn der Eingang s
kommt von der form; die list
initialisiert wieder. Wie muss ich den code ändern, um fügen Sie jede neue s
auf der Liste?
Danke.
class Test(webapp.RequestHandler):
def get(self):
s = self.request.get('sentence')
list = []
list.append(s)
htmlcode1 = HTML.table(list)
- Zum des Verhaltens zu ändern, müssen Sie ändern Sie die Reihenfolge Ihrer Aussagen. Warum versuchen Sie nicht, ein paar verschiedene Ordnungen der Aussagen zu sehen, wie sich das Verhalten ändert?
- Vermeiden Sie Namen, die Schatten built-ins ("Liste").
- Erraten, und überprüfen, ist nicht ein sehr effektiver Weg, um zu lernen, etwa eine Sprache. Es hat seinen Platz, aber ich respektvoll widersprechen, in diesem Umstand.
- Wahr. Aber die Frage zeigt einen so großen Mangel an sprachlichen Fähigkeiten. Guess und Check ist eindeutig viel, viel besser, als das, was vorgestellt wurde.
- Das ist ein guter Rat und ich habe versucht, neue Dinge mit dem code, aber ich konnte immer noch nicht damit es funktioniert. Wenn Sie einen Blick auf die Antworten; Sie würde sehen, dass es noch keine Antwort, hängt "s" in "myList". Wenn das so einfach; kann ich bitte Eure Hilfe? Danke.
- es gibt noch keine Antwort fügt "s" in "myList". Wirklich? Können Sie eine detaillierte Erklärung, warum die Antworten nicht funktionieren?
- -1: "ich habe versucht, neue Dinge mit dem code, aber ich konnte immer noch nicht damit es funktioniert" Wunderbar vage. Könnte alles bedeuten. Da kein code gepostet wurde, ist es unmöglich zu verstehen, was dies bedeutet.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich bin mir nicht sicher, was der Kontext des Codes ist, aber dieser sollte funktionieren:
Diese macht
list
eine Instanz-variable, so werde es bleiben. Das problem ist, dasslist
möglicherweise nicht das erste mal, dass wir versuchen, es zu verwenden, so dass in diesem Fall müssen wir es initialisieren.Tatsächlich, Blick auf dieser Beitrag, könnte dies cleaner code:
[Edit:]
Die oben nicht funktioniert, aus irgendeinem Grund, so versuchen Sie dies:
self.list
, nichtlist
. Ich aktualisiert meine Beispiele entsprechend. Außerdem sollten Sie in der sth Antwort, wenn Sie es bekommen können, um zu arbeiten. Seinen code hatself.list
drei mal, so stellen Sie sicher, Sie haben alle von Ihnen wenn Sie eingeschaltet, umself.myList
.myList
direkt.myList
ist nun eine Eigenschaft vonself
, so muss es bezeichnet werden, wieself.myList
zu allen Zeiten. Zum Beispiel, wenn Sie drucken möchtenmyList
Sie verwenden würdeprint(self.myList)
. Wenn ich mich daneben, könnte Sie posten einen größeren code-segment, das erzeugt den Fehler?self.myList
ist, verloren zu sein bedeutet, dass man entweder ein Tippfehler, oder ein neues Objekt erstellt wird, wird jedes mal. In jedem Fall habe ich ein drittes Beispiel, um zu versuchen. Ich habe noch nie verwendet diese Strategie vor, und ich denke mir, es ist schlecht code, aber es könnte funktionieren.myList
ein Attribut für das Klasse, nicht Objekt. Dies bedeutet, dass, solange das Programm ausgeführt wird, wirdmyList
wird immer bleiben, wie ein Attribut der Klasse, und Sie können den Zugriff von außerhalb der Klasse alsTest.myList
. Auch, wenn Sie instanziieren Sie ein Objekt aus derTest
Klasse (z.B.testObject = Test()
), das Objekt bekommt seine eigenemyList
variable, die die Punkte genau denselben Daten. (In anderen Worten, es ist, als wenn Sie laufen hattetestObject.myList = Test.myList
.) Dies ist der Grund, warum das Anhängenself.myList
ändertTest.myList
.self.myList
ist eine andere variable vonTest.myList
, so dass, wenn Sie laufenself.myList = 5
,Test.myList
würde unverändert bleiben. Ich verstehe wirklich nicht, diese auch selbst, aber ich denke, ich sollte Ihnen ein paar Warnungen. Vor allem, wenn Sie jemals eine andere Instanz vonTest
während das Programm ausgeführt wird, das ObjektmyList
variable auf den gleichenTest.myList
. Auch die Tatsache, dass die anderen Beispiele nicht-Arbeit scheint zu zeigen, dass Sie ein neues Objekt erstellen jedes mal, wenn Sie verwenden möchtenget
, das ist wahrscheinlich ein Fehler in deinem code.Man könnte die Liste eine member-variable des Objekts und dann nur zu aktualisieren, wenn
get()
heißt:self.list
im__init__
macht die Sache deutlicher__init__()
fürwebapp.RequestHandler
. Ich vergaß den*p, **kw
trick.__init__
macht einen Aufruf anget
? (Wieder, ich bin mir nicht sicher, waswebapp.RequestHandler
tatsächlich tut). Ich denke, Sie solltenself.list = []
vor dem Aufruf__init__
.print
Aussagen zu zeigen, was eigentlich passiert. Dies ist der richtige Ansatz.