gpt4 book ai didi

Python区分返回的元组和多个值

转载 作者:太空宇宙 更新时间:2023-11-04 09:26:32 25 4
gpt4 key购买 nike

我想编写一个包装函数,它调用一个函数并将结果传递给另一个函数。函数的参数和返回类型相同,但我在返回列表和多个值时遇到问题。

def foo():
return 1,2

def bar():
return (1,2)

def foo2(a,b):
print(a,b)

def bar2(p):
a,b=p
print(a,b)

def wrapper(func,func2):
a=func()
func2(a)

wrapper(bar,bar2)
wrapper(foo,foo2)

我正在寻找一种适用于两个函数对的语法,以便在我的包装代码中使用它。

编辑:至少 foo2 和 bar2 的定义应该保持这种方式。假设它们来自外部图书馆。

最佳答案

没有区别。 return 1,2 返回一个元组。括号不定义元组;逗号确实如此。 foobar 是相同的。

正如我在 JacobIRR 的评论之前所忽略的那样,您的问题是您需要将实际的元组而不是元组中的解压缩值传递给 bar2:

a = foo()
foo2(*a)

a = bar()
bar2(a)

关于Python区分返回的元组和多个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57363548/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com