首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >基础python,通过引用混淆传递

基础python,通过引用混淆传递
EN

Stack Overflow用户
提问于 2019-04-10 08:28:11
回答 1查看 61关注 0票数 0

我不明白这两种方法的区别,有人能解释一下吗?为什么其中一个引用对象改变了,而第二个引用保持不变?我来自Java,C#背景,如果有帮助的话。对我来说,它们中的引用似乎都应该更新。谢谢

def changeme( mylist ):
   "This changes a passed list into this function"
   mylist.append([1,2,3,4]);
   print "Values inside the function: ", mylist
   return

# Now you can call changeme function
mylist = [10,20,30];
changeme( mylist );
print "Values outside the function: ", mylist

函数内的值:[10,20,30,1,2,3,4]函数外的值:[10,20,30,1,2,3,4]

def changeme( mylist ):
    "This changes a passed list into this function"
   mylist = [1,2,3,4]; # This would assig new reference in mylist
   print "Values inside the function: ", mylist
   return

# Now you can call changeme function
mylist = [10,20,30];
changeme( mylist );
print "Values outside the function: ", mylist

函数内的值: 1,2,3,4函数外的值: 10,20,30

EN

回答 1

Stack Overflow用户

发布于 2019-04-10 08:32:00

函数中的mylist = [1,2,3,4]更改参数mylist的值,该参数是函数外部对mylist的引用的副本。原始引用不会更改。

如果要修改列表(而不是对其的引用),请使用mylist[:] = [1,2,3,4]

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55603055

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档