python将参数传递给函数

时间:2011-07-08 21:06:49

标签: python parameter-passing

我不清楚将列表作为参数传递给python中的函数的概念。

我自己尝试过这方面的研究,没有找到足够的资源。

我想实现一个辅助函数,它返回给定列表中的一些随机项。 (在django queryset中)

但是,列表可能包含多行并按值传递给函数可能会导致内存不足状态,如果我错了就纠正我。

我应该如何将列表传递给函数?

4 个答案:

答案 0 :(得分:6)

在Python中,有名称和值。赋值语句使名称引用值。赋值永远不会复制,赋值永远不会更改值。它只会更改名称所指的值。将参数传递给函数就像赋值:现在函数中参数的本地名称引用传入的值,并且永远不会复制。这种引用值的名称机制和更改值名称所引用的赋值,对于Python中的所有对象都是相同的,无论其类型如何。

由于可变和不可变的值,这会让人感到困惑。如果将可变值(例如,列表)传递给函数,并更改该值,则引用该值的调用者名称也将看到更改的值。如果将不可变值传递给函数(例如,字符串或数字),则任何人都不能更改该值。

答案 1 :(得分:3)

Python中的所有内容都是标识符。对于列表,您可以将评估策略视为“按引用调用”。它实际上命名为"call by sharing"

答案 2 :(得分:3)

没有。将列表传递给函数对内存没有任何影响。 Python 复制列表。

答案 3 :(得分:2)