关于嵌套函数的传参数问题。

我想使用如下函数,应该怎么传参数呢?

def help(x):
    li = []
    def add(a,b):
        nonlocal x,li
        y=a+x+b
        li.append(y)        
        return y

我可以分别调用help 和 add 这两个函数吗?

这样不可以的
如果只是单纯地嵌套定义函数,只能在定义函数的上一级进行调用,在help可以调用add,但是在help外面就不可以了
这个代码是有问题的,help没有返回值,add只能在help内进行调用
您到底想实现什么功能呢

首先你定义的li并没有用到
其次help没有返回值
这种逻辑也没必要两层函数

def add(x,a,b):
    y=a+x+b
    return y 

你这函数定义的有问题,help函数根本没有去调用add函数,也没有任何返回值,所以根本就不起作用
你想调用它是没法调用的


class solution:
    def sequ(self,low:int,high:int):
        setA,setB = self.helper(high),self.helper(low-1)
        for num in setB:
            if num in setA:
                setA.remove(num)
        return sorted(list(setA))

    def helper(self,x):
        mySet = set()
        def dfs(cur_num,next_digit):
            nonlocal x,mySet
            if(cur_num>x):
                return
            else:
                mySet.add(cur_num)
                if(next_digit == 10):
                    return
                dfs(cur_num*10 + next_digit,next_digit + 1)

            for i in range(1,10):
                dfs(0,i)
            return mySet

源码本身是这样的,我后面看不懂,所以想简单一些问的。

我们定义「顺次数」为:每一位上的数字都比前一位上的数字大 1 的整数。
请你返回由 [low, high] 范围内所有顺次数组成的 有序 列表(从小到大排序)。

这是题目

我想调用这个函数,但是也不成功。我这个调用方法对吗?


li=solution()
a=li.sequ(200,2000)
print(a)