python 未定义名称“function”

eqoofvh9  于 2023-01-08  发布在  Python
关注(0)|答案(1)|浏览(144)

我有一个关于leetcode的简单问题需要解释。其他类似的stackoverflow问题并没有真正解决我的问题。我想知道这是我的代码的问题还是leetcode函数需要以特定的方式定义。下面是我的代码:

class Solution:
    def countNegatives(self, grid: List[List[int]]) -> int:
        arr = []
        for g in grid:
            check(g)     
        return len(arr)
        
    def check(g):
        if g[-1] < 0:
            arr.append(g[-1])
            g.remove(g[-1])
            check(g)

我在第5行中遇到错误,它显示为check(g),因为它显示的是name 'check' is not defined
据我所知,check应该在作用域中,因为它没有在countNegatives函数中定义。我交换了两个函数的顺序,这并不重要。我认为如果g没有定义,它会更有意义。但是它说我的整个函数都是无效的,函数中的代码是否正确对我来说现在并不重要但我只是不明白为什么它没有被定义。

0s7z1bwu

0s7z1bwu1#

我认为这是缩进,check是solution类的一部分,但它没有self,所以要么减少缩进,把它从Solution类中去掉:

class Solution:
    def countNegatives(self, grid: List[List[int]]) -> int:
        arr = []
        for g in grid:
            check(g)     
        return len(arr)
        
def check(g):
    if g[-1] < 0:
        arr.append(g[-1])
        g.remove(g[-1])
        check(g)

或自行传递:

class Solution:
    def countNegatives(self, grid: List[List[int]]) -> int:
        arr = []
        for g in grid:
            check(g)     
        return len(arr)
        
    def check(self,g):
        if g[-1] < 0:
            arr.append(g[-1])
            g.remove(g[-1])
            check(g)

相关问题