装饰函数返回多个值

我有以下装饰器:


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


哈士奇WWW
浏览 136回答 1
1回答

偶然的你

如注释中所述,Python用于返回多个值的机制是返回一个元组。在一个简化的示例中,这很容易看到:def f():&nbsp; return 3, 4print(type(f()))<class 'tuple'>而且,还应该注意的是,这并不是通过魔术在幕后发生的;3, 4在函数返回之前,单独创建一个元组。因此,回答您的问题,这不是问题。两种情况下的行为是相同的。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python