就干净的代码而言,应该如何重构嵌套了循环、if-else语句和while循环的函数?对于这样的大型功能,什么是理想的、干净的结构?将这样的函数分解为嵌套函数可以接受吗?
def main():
try:
for
if
for
while
for
for
if
for
if
else
if
else
if
except:
if __name__ == "__main__":
main()
如果确实需要,只在内部循环中嵌套循环,否则避免嵌套它们(出于算法性能原因(。
使用Omri答案建议来识别您正在执行的每个步骤,为每个步骤提供一个明确的名称,并将该步骤提取到其自己的函数中(您调用该函数来执行原始函数中的步骤(。
这与嵌套函数不同,嵌套函数是出于不同的原因而做的。您只是在调用放置在其他地方的辅助函数(而不是嵌套在您的函数中(。
不要将所有内容都包围在try块中,并避免捕获所有空的except:
。只围绕可能引起麻烦的特定语句(或少数语句(,并在expect子句中只列出您期望的错误或错误类别。
它主要是基于意见的,取决于代码本身。一个好的经验法则是,每个函数都需要有一个逻辑目的。