gpt4 book ai didi

python - 有没有办法将相同的值传递给函数的所有参数?

转载 作者:行者123 更新时间:2023-12-01 10:17:45 26 4
gpt4 key购买 nike

我想知道是否有一种方法可以在不知道可用参数的情况下将值传递给函数的所有参数?

例子:

def SomeFunction(arg1, arg2, arg3):
print(arg1)
print(arg2)
print(arg3)

SomeFunction("Hi"**)

>> Hi
>> Hi
>> Hi

本例中的 ** 只是占位符语法。

最佳答案

我永远不会让它通过代码审查,但为了好玩,为什么不呢?

import inspect
SomeFunction(*["Hi"] * len(inspect.signature(SomeFunction).parameters))

它是如何工作的?让我们分解一下。

您可以使用func(*l)unpack a list分成单独的参数,像这样:

>>> SomeFunction(*['Hi', 'Hi', 'Hi'])
Hi
Hi
Hi

Multiplying a list by a number多次重复列表。

>>> ["Hi"] * 3
['Hi', 'Hi', 'Hi']
>>> SomeFunction(*['Hi'] * 3)
Hi
Hi
Hi

不是硬编码3,我们怎样才能得到参数的数量?答:inspect模块。

>>> inspect.signature(SomeFunction)
<Signature (arg1, arg2, arg3)>
>>> inspect.signature(SomeFunction).parameters
mappingproxy(OrderedDict([('arg1', <Parameter "arg1">), ('arg2', <Parameter "arg2">), ('arg3', <Parameter "arg3">)]))
>>> len(inspect.signature(SomeFunction).parameters)
3

将它们放在一起:

>>> ["Hi"] * len(inspect.signature(SomeFunction).parameters)
['Hi', 'Hi', 'Hi']
>>> SomeFunction(*["Hi"] * len(inspect.signature(SomeFunction).parameters))
Hi
Hi
Hi

关于python - 有没有办法将相同的值传递给函数的所有参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59587248/

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