Python中是否有标签/定位器?
gotoPython中是否有一个或任何等效版本能够跳转到特定的代码行?
回答:
Python使你能够使用一流的功能来完成goto可以完成的一些操作。例如:
void somefunc(int a){
if (a == 1)
goto label1;
if (a == 2)
goto label2;
label1:
...
label2:
...
}
可以这样在python中完成:
def func1(): ...
def func2():
...
funcmap = {1 : func1, 2 : func2}
def somefunc(a):
funcmap[a]() #Ugly! But it works.
当然,这不是替代goto的最佳方法。但是,如果不确切知道你要使用goto做什么,很难给出具体的建议。
@ ascobol:
最好的选择是将其包含在函数中或使用异常。对于功能:
def loopfunc(): while 1:
while 1:
if condition:
return
例外情况:
try: while 1:
while 1:
raise BreakoutException #Not a real exception, invent your own
except BreakoutException:
pass
如果你来自另一种编程语言,则使用异常来执行此类操作可能会有些尴尬。但是我会辩称,如果你不喜欢使用异常,那么Python不是你想要的语言。
以上是 Python中是否有标签/定位器? 的全部内容, 来源链接: utcz.com/qa/418472.html