【发布时间】:2021-04-06 08:37:06
【问题描述】:
def get_thing(item, obj):
for i in range(item):
obj.append(i)
return obj
def main():
thing = []
get_thing(5, thing)
print(thing)
main()
我希望以下代码返回
[]
而不是
[0,1,2,3,4]
它的工作方式似乎与我这样做的方式相同。
thing = get_thing(5, thing)
导致这种返回的后台进程是什么?我在工作中的代码中多次注意到这一点,对此有点困惑,不太确定它是如何工作的。
【问题讨论】:
-
列表通过引用传递。除非您制作副本,否则它总是指同一个列表。
-
@RandomDavis - 作为比喻有用,但在技术上不正确。我认为这个answer 信息量更大。
-
这能回答你的问题吗? How do I pass a variable by reference?