Ich habe 2 Python-Klassen in zwei Dateien.Rendite gibt keine in Python?
Datei: LdapConnection, Klasse: LdapClass(), Methode: getMachines (Selbst-)
@defer.inlineCallbacks def getMachines(self): c = ldapconnector.LDAPClientCreator(reactor, ldapclient.LDAPClient) overrides = {self.basedn: (self.serverip, 389)} client = yield c.connect(self.basedn, overrides=overrides) yield client.bind(self.binddn, self.bindpw) o = ldapsyntax.LDAPEntry(client, self.basedn) results = yield o.search(filterText=self.query) for entry in results: for i in entry.get('name'): self.machineList.append(i) yield self.machineList print self.machineList return
oben print-Anweisungen drucken alle entires im machineList
Datei : Verdrehte, Klasse: Caching, Methode: loadsettings (Selbst-)
@defer.inlineCallbacks def loadSettings(self): returned = yield LdapClass().getMachines() print returned
in der obigen Klasse meines Druck druckt None
. Was mache ich hier falsch?
Ich habe versucht, den Code zu formatieren, aber es ist wirklich vor gebrochen. Ich bin mir also nicht sicher, ob ich recht habe. Bitte prüfe. – Sraw
Mögliches Duplikat [Was ist das Ergebnis einer Ausbeute Ausdruck in Python?] (Https://stackoverflow.com/questions/10695456/what-is-the-result-of-a-yield-expression-in-python) – Aaron
Können Sie Ihr Beispiel auf ein [minimales, vollständiges und verifizierbares Beispiel] reduzieren (https://stackoverflow.com/help/mcve)? Es ist schwierig, die genaue Ausgabe zu erhalten, die Sie sehen. Ihre Verwendung von Ertrag ist in der Tat neugierig. Die Kombination von "yield" und "return" scheint verdächtig zu sein, ebenso wie das Zurückgeben von Werten aus Funktionen und das Erstellen von Listen statt einzelner Elemente. Ich würde erwarten, dass die Renditen von "Looped Yield" oder "Yield Yield" lauten, obwohl ich weiß, dass Sie py2 verwenden, das nicht "yield from" hat. –