随笔记录方便自己和同路人查阅。
#------------------------------------------------我是可耻的分割线-------------------------------------------
要理解参数如何传递给函数,引用就特别重要。当函数被调用时,参数的值被复制给変元,对于列表,这意味着
変元得到的是引用拷贝。
#------------------------------------------------我是可耻的分割线-------------------------------------------
1、示例代码:
# # -*- coding:utf-8 -*- # Autor: Li Rong Yang def eggs(someParameter):#定义一个函数 someParameter.append('hello')#像列表中追加hello元素 spam = [1,2,2]#定义一个列表 eggs(spam)#函数调用 print(spam)#打印列表
运行结果:
根据结果可以看出,虽然eggs()函数没有返回值,但是当调用eggs()函数时,spam列表还是被修改了,这是因为尽管spam和someParameter包含了不同的引用,
但它们都是指向相同的列表。这就是为什么函数内的append(‘hello’)方法调用在函数调用返回后,仍然会对列表产生影响。
记住这种行为:如果忘了Python处理列表和字段变量时采用这种方式,可能会导致令人困惑的缺陷。