我想知道如何使用嵌套for循环来提高此函数的可读性。也许我可以nested for loop
使用tags_files =
?
def search_repotag_for_file(search_filepath, repo):
'''Goes through all tags, all files to find a github file entity
which matches the search_filepath we are looking for'''
all_tags = (tag for tag in repo.tags)
tags_files = ((tag, file_ent) for tag in all_tags for file_ent in tag.commit.tree.traverse())
matches = (tup for tup in tags_files if tup[1].path == search_filepath)
return matches
答案 0 :(得分:5)
让我为你重写你的功能:
def search_repotag_for_file(search_filepath, repo):
for tag in repo.tags:
for file_ent in tag.commit.tree.traverse():
if file_ent.path == search_filepath:
yield (tag, file_ent)
您要查找的关键字是yield