我们可以从 1 个外部函数 return 2 个内部函数吗?

Can we return 2 inner functions from 1 outer functions?

我有一个函数factory(将n作为变量初始化为零)有两个内部函数current(returns n的值) 计数器(其中 returns 值 n+1).

def factory(n=0):    
    
    def counter():     
        return n+1    
    return counter
        
    def current():
        return n
    return current
        
f_current,f_counter=factory(int(input()))

我收到 类型错误:无法解压不可迭代的函数对象

可以,但是您只需要一个 return 语句。否则,第一个 return 语句获胜,第二个永远不会 运行。这是一个例子:

def factory(n=0):    
    
    def counter():     
        return n+1    
        
    def current():
        return n

    return current, counter
        
f_current, f_counter = factory(int(input()))

函数在遇到 return 语句时立即终止。因此,您的工厂函数在看到 return counter 时终止。您可以按如下方式更改它(return 在定义这两个函数之后)。

def factory(n=0):
    def counter():     
        return n+1
        
    def current():
        return n

    return current, counter
        
f_current,f_counter=factory(int(input()))