質問: node._get_dist(obj) if distance <= max_dist and distance >= min_dist: result.extend(node._values) candidates.extend(node._get_child_candidates(distance, min_dist, max_dist)) return result メソッド_get_child_candidatesが呼び出されるとどうなりますか?リストは返されますか?単一の要素?また呼ばれますか。その後の通話はいつ停止しますか。1.このコードはjochen schulz(jrschulz)によって書かれました。彼は距離空間のための素晴らしいpythonライブラリを作りました。これは完全なソースへのリンクです: モジュールmspace 。
回答: 単純yieldでは、値ではなくジェネレータオブジェクトを返します。 以下の簡単な例が役立ちます!def sim_generator(): for i in range(3): yield(i) obj = sim_generator() next(obj) # another way is obj.__next__() next(obj) next(obj) 上記のコードは0、1、2を返します。あるいは短いfor val in sim_generator(): print(val) 0、1、2を返すお役に立てれば