我有以下代码:
def testGeodatabase(self):
geodatabaseList = self.gp.ListWorkspaces("*","ALL")
for x in geodatabaseList:
if x == self.outputGeodatabase:
return True
else:
pass
return False
我需要知道以下内容:如果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
如果以下代码无法解决我的问题,我可以用什么模拟该行为?
由于
答案 0 :(得分:8)
return
是该行的结尾,之后该函数不会发生任何其他事情。另一方面,您可以将您的功能重写为
def testGeodatabase(self):
return self.outputGeodatabase in self.gp.ListWorkspaces("*","ALL")
答案 1 :(得分:2)
上面的代码中不需要break关键字。实际上,你不需要
else:
pass
任一。在
return True
将退出该功能。
答案 2 :(得分:1)
return
语句确实会导致该点退出该函数。函数中不再执行任何代码。
这是一个简单的测试,你可以运行来证明这一点:
def someFunction(nums):
for i in nums:
if i == 1:
return "Found 1!"
return "Never found 1"
运行它:
>>> someFunction([2])
'Never found 1'
>>> someFunction([2,1,3])
'Found 1!'
答案 3 :(得分:0)
我认为使用any()
是最佳选择:
def testGeodatabase(self):
geodatabaseList = self.gp.ListWorkspaces("*","ALL")
return any(x == self.outputGeodatabase for x in geodatabaseList)