【问题标题】:local variable 'highest' referenced before assignment赋值前引用的局部变量“最高”
【发布时间】:2024-05-23 01:45:02
【问题描述】:

我已经尝试通过函数调用但仍然弹出这个错误消息。

def mostExpensiveStock(self):
    mostexpStock = 0
    for r in self.getstockList():
        if r.value(r.getamountPur, r.getpricePur) > mostexpStock:
            mostexpStock = r.value(r.getamountPur, r.getpricePur)
            highest = str(r) + "with a total value of RM" + str('%.2f'%mostexpStock)
    return highest

【问题讨论】:

标签: python python-3.x


【解决方案1】:

我相信问题有时是 if 块不会触发。如果发生这种情况,使用您的代码编写方式,您仍然会尝试返回最高值,但是如果没有触发 if 块,则不会创建该值。

您可以查看 if else 块。

【讨论】:

    【解决方案2】:

    假设:

    • self.getstockList() 为空;或
    • r.value(...)self.getstocklist() 的所有成员都是否定的

    然后,您的代码将永远不会为 highest 分配任何值,因此您对 return highest 的尝试将导致您看到的异常。

    假设您想在这种情况下返回None。然后首先为highest 提供一个默认值

    def mostExpensiveStock(self):
        highest = None
        mostexpStock = 0
        ...
    

    【讨论】:

      最近更新 更多