Python 是";“继续”;坏习惯?
在Python中使用Python 是";“继续”;坏习惯?,python,Python,在Python中使用continue被认为是不好的做法吗?似乎在执行过程中停止函数/etc通常是一种“糟糕”的程序构造方法,比如在错误的情况下使用sys.exit(),或者goto使用流控制是一个有争议的话题 一个学派认为,它们通过隐藏读者会假设的流控制——一个线性的流控制——来掩盖代码 另一个学派认为,如果替代方案是复杂的逻辑(如附加标志和更复杂的循环条件),那么它们是合理的 您最好的选择是查看您的代码并做出决定;是否要使用类似“继续”的操作隐藏流控件?如果没有它,您的代码可以清晰地表达吗 我
continue
被认为是不好的做法吗?似乎在执行过程中停止函数/etc通常是一种“糟糕”的程序构造方法,比如在错误的情况下使用sys.exit()
,或者goto
使用流控制是一个有争议的话题
一个学派认为,它们通过隐藏读者会假设的流控制——一个线性的流控制——来掩盖代码
另一个学派认为,如果替代方案是复杂的逻辑(如附加标志和更复杂的循环条件),那么它们是合理的
您最好的选择是查看您的代码并做出决定;是否要使用类似“继续”的操作隐藏流控件?如果没有它,您的代码可以清晰地表达吗
我的意见是:如果你没有令人信服的理由不这样做,我建议你避免继续和它的亲属。使用流量控制是一个有争议的话题 一个学派认为,它们通过隐藏读者会假设的流控制——一个线性的流控制——来掩盖代码 另一个学派认为,如果替代方案是复杂的逻辑(如附加标志和更复杂的循环条件),那么它们是合理的 您最好的选择是查看您的代码并做出决定;是否要使用类似“继续”的操作隐藏流控件?如果没有它,您的代码可以清晰地表达吗
我的意见是:如果您没有令人信服的理由不这样做,我建议您避免使用continue及其亲属。在Python中使用continue,就个人而言,是可以的。如果在python中将其置于If/else语句类型的条件中,continue将起作用 就个人而言,在Python中使用continue很好。如果在python中将其置于If/else语句类型的条件中,continue将起作用 结构化编程的基础是在方法中定义好入口点和出口点——理想情况下是每个入口点和出口点中的一个。然而,这不是一个硬性规定,在许多情况下,有多个退出点是合适的。我想说的是,看看代码,想想是否有一种不同的方法可以在没有“continue”的情况下完成它,而“continue”仍然很优雅,如果没有,那么使用“continue”将是正确的方法。结构化编程的基础是在方法中定义好入口点和出口点——理想情况下是每个入口点和出口点都有一个。然而,这不是一个硬性规定,在许多情况下,有多个退出点是合适的。我会说,看看代码,想想是否有一种不同的方法可以在没有“继续”的情况下完成它,而“继续”仍然是优雅的,如果没有,使用“继续”将是正确的方法。不,这很好。另请参见“不”,这很好。另请参见
作为一个示例,考虑循环中需要提前退出的情况。如果没有控制流中断,您将不得不在循环中使用标志变量,这会使循环复杂化。
除了这样的实例之外,我想不出还会在其他任何情况下使用中断。类似地,我想不出我会继续使用的任何地方,除非我想结束循环的当前迭代并开始下一个迭代。这些案例正是继续和中断存在的原因。当然,但它们可以(也被)滥用;我见过运行无限循环的代码,其中循环控制位于主体中,这得益于流控制中断。我也看到过这样的例子,一个逻辑循环,可以很容易地用循环中的if语句表示,它依赖于否定测试并继续。是的,它们当然可以被滥用,几乎所有的东西都可以被滥用。这并不意味着应该完全避免它们(这是你的第一句话:一般来说,任何可能导致流控制“中断”的代码都被认为是不好的做法
),我没有这么说;如果我这样做了,我就不会“一般地”使用,也不会明确地提出其他学派的思想以及可以证明使用的情况——你同意的情况。一般来说,这不是一个绝对的术语。即使这篇文章已经结束,我还是调整了我的答案。也许这一切都在演示文稿中。举个例子,想想循环中需要提前退出的情况。如果没有控制流中断,您将不得不在循环中使用标志变量,这会使循环复杂化。
除了这样的实例之外,我想不出还会在其他任何情况下使用中断。类似地,我想不出我会继续使用的任何地方,除非我想结束循环的当前迭代并开始下一个迭代。这些案例正是继续和中断存在的原因。当然,但它们可以(也被)滥用;我见过运行无限循环的代码,其中循环控制位于主体中,这得益于流控制中断。我也看到过这样的例子,一个逻辑循环,可以很容易地用循环中的if语句表示,它依赖于否定测试并继续。是的,它们当然可以被滥用,几乎所有的东西都可以被滥用。这并不意味着应该完全避免它们(这是你的第一句话:一般来说,任何可能导致流控制“中断”的代码都被认为是不好的做法
),我没有这么说;如果我这样做了,我就不会“一般地”使用,也不会明确地提出其他学派的思想以及可以证明使用的情况——你同意的情况。一般来说,这不是一个绝对的术语。即使这篇文章已经结束,我还是调整了我的答案。也许这一切都在演讲中。