复制所有函数输入的pythonic方式

Fis*_*kuz 0 python func

我正在寻找一种更优雅的方式,以避免出现以下情况:

def funct(input1, input2, input3, input4, input5):
   input1_new = copy.copy(input1)
   input2_new = copy.copy(input2)
   input3_new = copy.copy(input3)
   input4_new = copy.copy(input4)
   input5_new = copy.copy(input5)
Run Code Online (Sandbox Code Playgroud)

由于我目前有很多文件,使用非常广泛的函数,我想知道是否没有更多的 pythonic 方法来复制函数中给出的所有输入。

由于堆栈和堆问题,我正在复制。

谢谢!

ARK*_*375 7

您可以*在函数的参数定义中使用一次接收所有输入。

def funct(*inputs):
    inputs_new = copy.copy(inputs)
Run Code Online (Sandbox Code Playgroud)

通过这种方式,您将收到inputs元组中的所有输入,并且可以迭代地访问它们。例如,inputs[0]将是您的input1等等。

  • 嗯,这是我能想到的最 _pythonic_ 方式。此外,大多数 python 用户已经习惯了 `*` 和 `**`(它以字典而不是元组的形式接收输入)。此外,您可以在代码中添加一些注释并链接到外部源(如 [this](https://www.geeksforgeeks.org/args-kwargs-python/))以获得更多解释。 (2认同)