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不是你想要的语言。