修饰函数返回多值

2024-04-29 03:53:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下装饰师:

def my_deco(limit=None):
    def wrap_outer(func):
        def wrap_inner(*args, **kwargs):
                return func(*args, **kwargs)

        return wrap_inner
    return wrap_outer

它调用实际的修饰函数

func(*args, **kwargs)

如果函数返回多个值,则返回一个包含3和4的单元组。如何保持多值返回行为而不是元组?你知道吗

@my_deco()
def f(): 
    return 3, 4

Tags: 函数nonereturnmydefargskwargs单元
1条回答
网友
1楼 · 发布于 2024-04-29 03:53:15

如注释中所述,Python用于返回多个值的机制是返回一个元组。你知道吗

这很容易在一个简单的例子中看到:

def f():
  return 3, 4

print(type(f()))

<class 'tuple'>

而且,还应该注意的是,这并不是通过一些魔术在幕后发生的事情;3, 4单独在函数返回之前创建一个元组。你知道吗

所以回答你的问题,这不是问题。两种情况下的行为是相同的。你知道吗

相关问题 更多 >