首页 > 解决方案 > Python 全局变量混淆

问题描述

这是我的代码,我很困惑为什么会出现异常local variable "final" referenced before assignment。我试图将它声明为全局dfs函数,但仍然没有帮助。我想知道为什么函数vistited正确引用了它,dfsfinal没有。

def movingCount(self, m, n, k):
        def calculate(x, y):
            x_str = str(x)
            y_str = str(y)
            result = 0
            for i in x_str:
                result += int(i)
            for j in y_str:
                result += int(j)
            return result
        vistited = [[0]*n for _ in range(m)]
        final = 0
        def dfs(x, y):
            print(vistited, final)
            if x == m or y == n or calculate(x, y) > k:
                return
            else:
                vistited[x][y] = 1
                final += 1
            dfs(x+1, y)
            dfs(x, y+1)
        dfs(0, 0)        
        return final

标签: python

解决方案


推荐阅读