为什么python代码def f1(x,lst): a=x+2 lst=lst+[a] a=2;lst=[3,4] f1(a,lst) print(a,lst)的返回值为2 [3,4]
时间: 2024-04-01 15:32:31 浏览: 117
Python代码-函数返回值.py
这是因为在函数f1中,变量a和lst都是函数的局部变量。当函数被调用时,传入的a和lst会被赋值给函数中的局部变量a和lst。在函数中,变量a的值被修改为x+2,但是由于lst被重新赋值为lst+[a],所以lst指向了一个新的列表对象,原始的lst=[3,4]并没有被修改。因此,在函数调用结束后,变量a的值不会影响到函数外部,而lst的值只会影响到函数内部,函数外部的lst=[3,4]并没有被修改。所以最终的返回值是2和[3,4]。
阅读全文