复制所有函数输入的pythonic方式
我正在寻找一种更优雅的方式,以避免出现以下情况:
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)
由于我目前有很多文件,使用非常广泛的函数,我想知道是否没有更多的 pythonic 方法来复制函数中给出的所有输入。
由于堆栈和堆问题,我正在复制。
谢谢!
回答
您可以*在函数的参数定义中使用一次接收所有输入。
def funct(*inputs):
inputs_new = copy.copy(inputs)
通过这种方式,您将收到inputs元组中的所有输入,并且可以迭代地访问它们。例如,inputs[0]将是您的input1等等。
- 嗯,这是我能想到的最 _pythonic_ 方式。此外,大多数 python 用户已经习惯了 `*` 和 `**`(它以字典而不是元组的形式接收输入)。此外,您可以在代码中添加一些注释并链接到外部源(如 [this](https://www.geeksforgeeks.org/args-kwargs-python/))以获得更多解释。