我们可以从 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()))
我有一个函数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()))