【发布时间】:2020-03-31 08:38:14
【问题描述】:
我对以下 3 个代码感到困惑。
1.第一个对我来说很直观,我看到了(B):
(A)
def change (mylist):
mylist[0] = 33
mylist[1] = 44
mylist[2] = 55
print("inside the function",mylist)
alist = [10,20,30]
change(alist)
print("outside the function",alist)
输出是:
函数内部 [33, 44, 55]
函数外[33,44,55]
2.当我看到(B)时,我很难区分(A)和(B)。
(B)
def change2 (mylist):
mylist = [33,44,55]
print("inside the funcion",mylist)
blist = [10,20,30]
change2(blist)
print("outside the funcion",blist)
输出是:
函数内部 [33, 44, 55]
函数外[10,20,30]
3.那么,第三个是(C),我想不通为什么“a”不能改成5。
(C)
def change3(mylist,number):
mylist[0] = 33
mylist[1] = 44
mylist[2] = 55
number = 5
print("inside the function",mylist,number)
clist = [10,20,30]
a = 50
change3(clist,a)
print("outside the function",clist,a)
输出是:
函数内部 [33, 44, 55] 5
函数外 [33, 44, 55] 50
我知道他们可能有一些具有可变或不可变概念的东西,但我不知道这三个代码背后的明确概念。有人可以解释一下吗?谢谢。
【问题讨论】:
标签: python computer-science immutability mutable