函数如何替换Python中的重复逻辑?

2024-04-26 04:25:09 发布

您现在位置:Python中文网/ 问答频道 /正文

此原始代码使用重复代码

movies = ["hello", "take", ["near", "others",["tra", "told", "model"]]]
for each_item in movies:
   if isinstance(each_item, list):
      for nested_item in each_item:
         if isinstance(nested_item, list):
            for deeper_item in nested_item:
               if isinstance(deeper_item, list):
                  for deepest_item in deeper_item:
                     print(deepest_item)
               else:
                  print(deeper_item)
         else:
            print(nested_item)
   else:
      print(each_item)

这是不使用函数的。当我想通过删除重复逻辑来压缩代码时,新代码(使用我调用的函数print_lol)将

movies = ["hello", "take", ["near", "others",["tra", "told", "model"]]]
def print_lol(the_list):
   for each_item in the_list:
      if isinstance(each_item, list):
         print_lol(each_item)
      else:
         print(each_item)
print_lol(movies)

我想理解print_lol(each_item)语句中的if。它有什么作用?在它自己的函数定义中使用print_lol(each_item)使它重复,但我不明白怎么做。你知道吗


Tags: 函数代码inforifmoviesitemelse