为什么这个程序要更改没有返回值的列表?

2024-05-03 10:40:25 发布

您现在位置:Python中文网/ 问答频道 /正文

def main():
    a = [1, 2, 3]
    myFunc(a)
    print(a)

def myFunc(myList):
    myList[1] = 100

我在为我的第一节关于python的compsci课程准备期末考试。这段代码出现了,我不明白为什么当myFunc()没有返回值时列表的值会改变。为什么不直接打印出1,2,3?谢谢你抽出时间。你知道吗


Tags: 代码列表maindef时间myfunc课程print
2条回答

我现在也在上Python的入门课,所以我会尽力回答这个问题。你知道吗

简单地说,并非所有函数都需要返回值。你知道吗

在函数MyFunc中,您有效地更改了列表,而不必返回值。你只是多走了一步,让你的计划更有条理。如果只是将函数的内容放在main函数中,情况也是一样的。你知道吗

Python列表是可变的。Python函数通过赋值传递参数。调用main时,它会创建一个列表,并将其与本地(to main)名称a关联。然后它调用myFunc,它将这个相同的列表指定为本地(to myFunc)名称myList的值,该名称会对其进行变异。(即,不复制列表;myFunc正在处理相同的可变对象。)然后控制流回到main,它打印a的值(现在已更改)。你知道吗

相关问题 更多 >