再帰関数の戻りに奇妙な問題があります。temp_blocksの代わりに常に「None」を返します。彼はelse-caseでtemp_blocks(Noneではなくブロックのリスト)を書き込みますが、関数を呼び出すとリストが返されないようですblocks = _searchblocks(roots, left_edge, right_edge)
。これは一般的な問題ですか、それとも私のせいですか?
def _searchblocks(blocks, left_edge, right_edge):
temp_blocks = []
for block in blocks:
if np.any(block.left_edge >= left_edge) \
and np.any(block.right_edge <= right_edge):
temp_blocks.append(block)
if len(temp_blocks) == 1:
_searchblocks(temp_blocks[0].children, left_edge, right_edge)
else:
print(temp_blocks)
return temp_blocks