为了账号安全,请及时绑定邮箱和手机立即绑定

装饰函数返回多个值

装饰函数返回多个值

哈士奇WWW 2021-04-07 06:14:12
我有以下装饰器: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
查看完整描述

1 回答

?
偶然的你

TA贡献1841条经验 获得超3个赞

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


在一个简化的示例中,这很容易看到:


def f():

  return 3, 4


print(type(f()))


<class 'tuple'>

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


因此,回答您的问题,这不是问题。两种情况下的行为是相同的。


查看完整回答
反对 回复 2021-04-13
  • 1 回答
  • 0 关注
  • 128 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信