代码之家  ›  专栏  ›  技术社区  ›  barciewicz

将函数结果赋给与函数同名的变量时出现UnboundLocalError

  •  -1
  • barciewicz  · 技术社区  · 6 年前

    我为什么要

    UnboundLocalError:之前引用的局部变量“heatmap” 分配

    在下面一行的脚本中 heatmap = heatmap() 是吗?

    def heatmap():
        heatmap = "123"
        return heatmap
    
    def run():
       heatmap = heatmap()
       return heatmap
    
    print(run())
    
    1 回复  |  直到 6 年前
        1
  •  1
  •   grapes    6 年前

    因为函数和局部变量使用相同的名称。不应该这样做。

    这条线:

    heatmap = heatmap()
    

    首先声明新变量 heatmap ,从而隐藏函数,然后尝试调用 heatmap() 初始化它。但现在已经有了 没有这样的功能 ,因为从现在起它是一个局部变量