已有184人关注
值传递和引用传递区分问题
发表在Python图书答疑 2020-02-28 悬赏:2 学分 《Python从入门到项目实践》第11章 用函数实现模块化程序设计 162页-163页
是否精华
版块置顶:

我运行了以下代码:

def a(x):

      x = x+[4]


b = [1, 2, 3]

a(b)
print(b)

得到结果如下:

[1, 2, 3]


此时实参是可变对象(列表)啊?为何我改变了形参的值后,实参的值不改变?这个时侯是值传递还是引用传递?

2020-02-28 20:05:40编辑
分享到:
精彩评论 1
无语_mrkj
学分:3155 LV11
2020-03-03
沙发

您这种操作并不是直接改变形参的值,因为形参x和x=x+[4]中的第一个x并不是同一个对象。他们的内容地址是不一样的,所以实参的值不改变。如果换成书中的x+=[4]就改变了。

首页上一页 1 下一页尾页 1 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照