当一个函数包含多个if语句时,最好只保留一个出口。在类似php的语言中,我可以使用do while(false),如下所示:
function a() {
do {
if (...) break;
...
if (...) break;
...
} while (FALSE);
...
return;
}
如何在python中实现这一点?虽然我可以使用while(true),但是如果缺少尾部的中断,它将是一个死循环。在
^{pr2}$有没有一种更像Python的方法?在
注:为了进一步说明一个出口:
function a() {
if (...) { $a = 1; log($a); return $a; }
if (...) { $a = 2; log($a); return $a; }
if (...) { $a = 3; log($a); return $a; }
}
function a() {
do {
if (...) { $a = 1; break; }
if (...) { $a = 2; break; }
if (...) { $a = 3; break; }
} while (FALSE);
log($a);
return $a;
}
希望你能看到区别。。。在
为了在Python中实现这一点,我可以这样写(参见Defining cleanup actions):
我认为while循环是一种很尴尬的方式来实现你所要的。为什么不直接使用局部变量呢?在
实现您提到的目标(记录返回值)的一种更python方法是将整个函数包装在decorator中。例如:
相关问题 更多 >
编程相关推荐