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

回到顶部