gpt4 book ai didi

python - 改变参数的 Python 函数的正确样式

转载 作者:太空狗 更新时间:2023-10-29 17:23:51 26 4
gpt4 key购买 nike

我想编写一个 Python 函数来改变其中一个参数(这是一个列表,即可变的)。像这样:

def change(array):
array.append(4)

change(array)

与 Python 的设置(无论您决定如何调用它)相比,我更熟悉按值传递。所以我通常会这样写这样的函数:

def change(array):
array.append(4)
return array

array = change(array)

这是我的困惑。因为我可以改变参数,所以第二种方法似乎是多余的。但是第一个感觉不对。另外,我的特定函数将有几个参数,只有其中一个会改变。第二种方法清楚地表明正在更改的参数(因为它已分配给变量)。第一种方法没有任何指示。有约定吗?哪个更好'?谢谢。

最佳答案

第一种方式:

def change(array):
array.append(4)

change(array)

是最惯用的方式。通常,在 Python 中,我们期望函数要么改变参数,要么返回一些东西1。这样做的原因是因为如果一个函数不返回任何东西,那么它就非常清楚该函数必须有一些副作用才能证明它的存在(例如改变输入)。

另一方面,如果您采用第二种方式:

def change(array):
array.append(4)
return array

array = change(array)

当一个可变对象在您没有预料到的情况下突然发生变化时,您很容易难以追踪错误——“但我认为 change 制作了一个副本”。 ..

1从技术上讲,每个函数都会返回 something_something_ 恰好是 None .. .

关于python - 改变参数的 Python 函数的正确样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26027694/

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