2つのファイルに2つのpythonクラスがあります。yieldはPythonでNoneを返しますか?
ファイル:LdapConnectionクラス:LdapClass()メソッド:
@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
印刷文上記getMachines(自己)machineList
ファイル内のすべてのentiresを印刷します:ツイスト、クラス:キャッシュ、メソッド:loadSettings(self)
@defer.inlineCallbacks def loadSettings(self): returned = yield LdapClass().getMachines() print returned
上記のクラスは私のプリントプリントNone
です。何を私はここで間違っている?
私はあなたのコードをフォーマットしようとしましたが、それは本当に前に壊れています。だから、私は正しいとは確信していません。チェックしてください。 – Sraw
[Pythonのyield式の結果は何ですか?](https://stackoverflow.com/questions/10695456/what-is-the-result-of-a-yield-expression-in-python)の可能な複製 – Aaron
あなたの例を[最小、完全、および検証可能な例](https://stackoverflow.com/help/mcve)に減らすことはできますか?あなたが見る正確な出力を得るのは難しいです。収量のあなたの使用は確かに興味があります。 'yield'と' return'の組み合わせは、関数から値を返し、個々の項目ではなくリストを返すのと同じように、疑わしいと思われます。私はあなたが 'yield from 'を持っていないpy2を使っていることを知っていますが、ループ収率または' yield from'を期待しています。 –