标题可能有误导性,所以这里有一个更好的解释。
考虑下面的代码:
def minimum_working_environment(r):
trial=np.arange(0,6)[::-1]
for i in range(len(trial)):
if r>trial[i]:
return i
return len(trial)
我们看到如果
r
比…的最小元素小
trial
这个
if
循环中的子句永远不会执行。因此,函数从不在循环中返回任何内容,而是在最后一行返回某些内容。如果
如果
循环中的子句被执行,
return
终止代码,因此最后一行永远不会执行。
我想实现类似的东西,但没有回报,即。,
def minimum_working_environment(self,r):
self.trial=np.arange(0,6)[::-1]
for i in range(len(self.trial)):
if r>trial[i]:
self.some_aspect=i
break
self.some_aspect=len(self.trial)
在这里
break
中断循环,但函数未终止。
我能想到的解决方案是:
-
代替
打破
具有
return 0
并且不检查函数的返回值。
-
使用标志变量。
-
扩展
self.trial
带有非常小的负数的数组,如
-1e99
.
第一种方法看起来不错,如果我没有得到任何答案,我可能会实现它。第二个很无聊。第三个问题不仅无聊,而且可能会导致性能问题。
我的问题是:
有这样一个保留的词吗
回来
这将以我想要的方式工作,即终止函数?
如果没有,最好的解决方案是什么?
谢谢