python类方法中的双返回

ral*_*nja 0 python return-value

当我调用以下方法时,执行两个返回,我无法弄清楚原因.

def Build(self, name = None):
    if self.buildData:
        try:
            installData = self.buildData.Build(name)
            return BuildResult(True, installData)
        except:
            pass
    else:
        Log("Application has no <build> data")
    return BuildResult(False, None)
Run Code Online (Sandbox Code Playgroud)

这是怎么回事:

  1. 使用有效字符串调用该方法,例如"abc"
  2. 调用self.buildData.Build(name)并运行BuildResult(True,installData)构造函数
  3. 最后一个return语句也被执行

tmg*_*tmg 7

好吧,我猜BuildResult()失败,异常被传递,你进入第二次返回.您可以通过添加一些调试打印来轻松测试它 - 除了 - 从不使异常无声:)