def main():
a = [1, 2, 3]
myFunc(a)
print(a)
def myFunc(myList):
myList[1] = 100
我正在为我的第一个关于python的compsci课程的最后一个学习。这个代码出现了,我不明白为什么当myFunc()没有返回值时列表的值会发生变化。为什么它不打印1,2,3?谢谢你的时间。
答案 0 :(得分:1)
Python列表是可变的。 Python函数通过赋值传递参数。当您致电main
时,它会创建一个列表并将其与本地(main
)名称a
相关联。然后它调用myFunc
,它将这个相同的列表指定为本地(myFunc
)名称myList
的值,这会改变它。 (即,没有列表的副本; myFunc
正在使用相同的可变对象。)然后控制流回main
,打印(现已更改)价值a
。
答案 1 :(得分:0)
我目前正在参加Python的入门课程,所以我会尽力回答这个问题。
简单地说,并非所有函数都需要返回值。
在你的函数MyFunc中,你有效地更改了列表而不必返回值。您只需采取额外步骤,使您的计划更有条理。如果你只是在main函数中包含了函数的内容,它就会一样。