Я новичок в 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