返回变量时发生UnboundLocalError

2024-06-13 20:58:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个静态方法来收集一些东西并返回它们。在

@staticmethod
def testForMetrics(....):
    ...
    ...

    coverages = Metrics.findCoverageStats(....)

    ...
    return coverages, ....

FindCoveragetts看起来像

^{pr2}$

跑步告诉我UnboundLocalError: local variable 'coverages' referenced before assignment,但只有在极少数情况下。在

什么样的边缘情况会导致这种行为?在


Tags: returnlocaldef情况variable跑步metricspr2
1条回答
网友
1楼 · 发布于 2024-06-13 20:58:46

您所指的错误类型(UnboundLocalError: local variable 'xxx' referenced before assignment)是由于函数的多个潜在执行路径而未设置变量的情况。在

关于这种情况的(简化)示例,见下文:

def fun():
    if random.randint() < 1000:
        xxx = 1
    else:
        yyy = 1

    return xxx

一种解决方法是使用默认值声明xxx,或者在else子句中也进行赋值(下面的第一个解决方案)。在

^{pr2}$

相关问题 更多 >