Python 定义的函数的参数传递是怎么样的?
这个参数传递过程是怎么样的,为什么data的内容会改变呢?是把data赋值给some_list,把a赋值给element吗?然后some_list的值再赋值给data吗?...
这个参数传递过程是怎么样的,为什么data的内容会改变呢?是把data赋值给some_list,把a赋值给element吗?然后some_list的值再赋值给data吗? 这个函数没有return,没有返回值啊为什么a没有变呢?
展开
2个回答
展开全部
你可以粗略地这样理解,即出现这种结果是因为传递data和传递a的方式是不同的。
传递data的方式:
data是列表的引用,这就相当于文件的快捷方式;而[1,2,3]才是真正的列表,这就相当于文件本身。参数传递后data和some_list就指向了同一个列表,这就相当于复制了文件的一个快捷方式后,两个快捷方式都指向了同一个文件。而通过快捷方式some_list当然可以找到并修改(如果此文件不是只读的)它指向的文件(列表)。
传递a的方式:
a就相当于文件本身,而参数传递就相当于复制文件并将其命名为element,复制后,a和element是内容相同的两个独立的文件,改变一个不会影响到另一个。
传递data的方式:
data是列表的引用,这就相当于文件的快捷方式;而[1,2,3]才是真正的列表,这就相当于文件本身。参数传递后data和some_list就指向了同一个列表,这就相当于复制了文件的一个快捷方式后,两个快捷方式都指向了同一个文件。而通过快捷方式some_list当然可以找到并修改(如果此文件不是只读的)它指向的文件(列表)。
传递a的方式:
a就相当于文件本身,而参数传递就相当于复制文件并将其命名为element,复制后,a和element是内容相同的两个独立的文件,改变一个不会影响到另一个。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询