如何完成这种行为?Python"短路"测试

Geo*_*lva 0 python short-circuiting

我有以下代码:

def testGeodatabase(self):
    geodatabaseList = self.gp.ListWorkspaces("*","ALL")
    for x in geodatabaseList:
        if x == self.outputGeodatabase:
            return True
        else:
            pass
    return False
Run Code Online (Sandbox Code Playgroud)

我需要知道以下内容:如果if条件的计算结果为true,函数是否会停止在列表中查找并且永远不会返回False?或者我需要休息声明吗?

def testGeodatabase(self):
    geodatabaseList = self.gp.ListWorkspaces("*","ALL")
    for x in geodatabaseList:
        if x == self.outputGeodatabase:
            return True
            break
        else:
            pass
    return False
Run Code Online (Sandbox Code Playgroud)

如果以下代码无法解决我的问题,我可以使用什么来模拟该行为?

谢谢

Jon*_*erg 8

return是该行的结束,之后该函数不会发生任何其他事情.另一方面,您可以将您的功能重写为

def testGeodatabase(self):
    return self.outputGeodatabase in self.gp.ListWorkspaces("*","ALL")
Run Code Online (Sandbox Code Playgroud)

  • 没有必要冒你的钱...试试吧!`print'a'in('b','c')` (2认同)