Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 是";“继续”;坏习惯?_Python - Fatal编程技术网

Python 是";“继续”;坏习惯?

Python 是";“继续”;坏习惯?,python,Python,在Python中使用continue被认为是不好的做法吗?似乎在执行过程中停止函数/etc通常是一种“糟糕”的程序构造方法,比如在错误的情况下使用sys.exit(),或者goto使用流控制是一个有争议的话题 一个学派认为,它们通过隐藏读者会假设的流控制——一个线性的流控制——来掩盖代码 另一个学派认为,如果替代方案是复杂的逻辑(如附加标志和更复杂的循环条件),那么它们是合理的 您最好的选择是查看您的代码并做出决定;是否要使用类似“继续”的操作隐藏流控件?如果没有它,您的代码可以清晰地表达吗 我

在Python中使用
continue
被认为是不好的做法吗?似乎在执行过程中停止函数/etc通常是一种“糟糕”的程序构造方法,比如在错误的情况下使用
sys.exit()
,或者
goto

使用流控制是一个有争议的话题

一个学派认为,它们通过隐藏读者会假设的流控制——一个线性的流控制——来掩盖代码

另一个学派认为,如果替代方案是复杂的逻辑(如附加标志和更复杂的循环条件),那么它们是合理的

您最好的选择是查看您的代码并做出决定;是否要使用类似“继续”的操作隐藏流控件?如果没有它,您的代码可以清晰地表达吗


我的意见是:如果你没有令人信服的理由不这样做,我建议你避免继续和它的亲属。

使用流量控制是一个有争议的话题

一个学派认为,它们通过隐藏读者会假设的流控制——一个线性的流控制——来掩盖代码

另一个学派认为,如果替代方案是复杂的逻辑(如附加标志和更复杂的循环条件),那么它们是合理的

您最好的选择是查看您的代码并做出决定;是否要使用类似“继续”的操作隐藏流控件?如果没有它,您的代码可以清晰地表达吗


我的意见是:如果您没有令人信服的理由不这样做,我建议您避免使用continue及其亲属。

在Python中使用continue,就个人而言,是可以的。如果在python中将其置于If/else语句类型的条件中,continue将起作用

就个人而言,在Python中使用continue很好。如果在python中将其置于If/else语句类型的条件中,continue将起作用

结构化编程的基础是在方法中定义好入口点和出口点——理想情况下是每个入口点和出口点中的一个。然而,这不是一个硬性规定,在许多情况下,有多个退出点是合适的。我想说的是,看看代码,想想是否有一种不同的方法可以在没有“continue”的情况下完成它,而“continue”仍然很优雅,如果没有,那么使用“continue”将是正确的方法。

结构化编程的基础是在方法中定义好入口点和出口点——理想情况下是每个入口点和出口点都有一个。然而,这不是一个硬性规定,在许多情况下,有多个退出点是合适的。我会说,看看代码,想想是否有一种不同的方法可以在没有“继续”的情况下完成它,而“继续”仍然是优雅的,如果没有,使用“继续”将是正确的方法。

不,这很好。另请参见“不”,这很好。另请参见
作为一个示例,考虑循环中需要提前退出的情况。如果没有控制流中断,您将不得不在循环中使用标志变量,这会使循环复杂化。
除了这样的实例之外,我想不出还会在其他任何情况下使用中断。类似地,我想不出我会继续使用的任何地方,除非我想结束循环的当前迭代并开始下一个迭代。这些案例正是继续和中断存在的原因。当然,但它们可以(也被)滥用;我见过运行无限循环的代码,其中循环控制位于主体中,这得益于流控制中断。我也看到过这样的例子,一个逻辑循环,可以很容易地用循环中的if语句表示,它依赖于否定测试并继续。是的,它们当然可以被滥用,几乎所有的东西都可以被滥用。这并不意味着应该完全避免它们(这是你的第一句话:
一般来说,任何可能导致流控制“中断”的代码都被认为是不好的做法
),我没有这么说;如果我这样做了,我就不会“一般地”使用,也不会明确地提出其他学派的思想以及可以证明使用的情况——你同意的情况。一般来说,这不是一个绝对的术语。即使这篇文章已经结束,我还是调整了我的答案。也许这一切都在演示文稿中。
举个例子,想想循环中需要提前退出的情况。如果没有控制流中断,您将不得不在循环中使用标志变量,这会使循环复杂化。
除了这样的实例之外,我想不出还会在其他任何情况下使用中断。类似地,我想不出我会继续使用的任何地方,除非我想结束循环的当前迭代并开始下一个迭代。这些案例正是继续和中断存在的原因。当然,但它们可以(也被)滥用;我见过运行无限循环的代码,其中循环控制位于主体中,这得益于流控制中断。我也看到过这样的例子,一个逻辑循环,可以很容易地用循环中的if语句表示,它依赖于否定测试并继续。是的,它们当然可以被滥用,几乎所有的东西都可以被滥用。这并不意味着应该完全避免它们(这是你的第一句话:
一般来说,任何可能导致流控制“中断”的代码都被认为是不好的做法
),我没有这么说;如果我这样做了,我就不会“一般地”使用,也不会明确地提出其他学派的思想以及可以证明使用的情况——你同意的情况。一般来说,这不是一个绝对的术语。即使这篇文章已经结束,我还是调整了我的答案。也许这一切都在演讲中。