gpt4 book ai didi

函数参数中元组的 Python 默认值

转载 作者:行者123 更新时间:2023-11-28 20:43:55 24 4
gpt4 key购买 nike

我知道在 python 中你可以为这样的参数设置一个默认值:

 def func(self, arg='value'):
#somecode

我有一个最多接受 16 个参数的函数,所以我希望将它们存储为一个元组。问题是我想为元组的某些值设置默认值,但不是全部。将默认元组设置为

def func(self, values=('foo', 'bar', 'foobar')):

如果我传入一个只有两个值的元组,会被覆盖吗?如果我这样做,例如:

 func(('bar', 'foo')

values==('bar', 'foo'),而不是 ('bar', 'foo', 'foobar')。有解决方法吗?

最佳答案

这是一种比目前接受的解决方案更易于管理的解决方案。它将使您轻松地将默认参数声明为元组,而不是在函数签名中声明每个值的名称。 (想象一下对 4x4 矩阵这样做!)

更新:

你可以这样做:

def func(self, args):
defaultargs = (1, 2, 3)
args = tuple(map(lambda x, y: y if y is not None else x, defaultargs, args))

在这种情况下,您可以将它放在函数定义中,而不是在函数定义中使用默认参数,并对每个元素执行 or 操作,如图所示。这样,args 中留空的任何位置都将由默认 args 元组中的相应位置填充。

这解决了下面评论中提到的警告。

关于函数参数中元组的 Python 默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28059560/

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