1
私はPythonを初めて使い、このコードに入りました。私の以前のプログラミング知識から、私はこのメソッドが何かを返すと仮定しています(results
)。しかし、なぜself.children[0].query(rect, results)
のような文は、そのメソッドを再帰的に呼び出す間に戻り値を任意の変数に代入しないのですか?Pythonで戻り値を持つメソッドを呼び出す
def query(self, rect, results=None):
if results is None:
rect = normalize_rect(rect)
results = set()
if len(self.children) > 0:
if rect[0] <= self.center[0]:
if rect[1] <= self.center[1]:
self.children[0].query(rect, results)
if rect[3] > self.center[1]:
self.children[1].query(rect, results)
if rect[2] > self.center[0]:
if rect[1] <= self.center[1]:
self.children[2].query(rect, results)
if rect[3] > self.center[1]:
self.children[3].query(rect, results)
for node in self.nodes:
if (node.rect[2] > rect[0] and node.rect[0] <= rect[2] and
node.rect[3] > rect[1] and node.rect[1] <= rect[3]):
results.add(node.item)
return results