Python中所有的数据值都是一个对象,变量是对对象的引用,也就是变量和数据值保存的地址不一样也不是一个概念。
a = 12
b = 12
在程序执行的时候会将a和12分别进行存储,并将a指向12,变量b和变量a指向同一个地址
查看对象地址:id(对象或变量名)
def function(sum,list=[])
pass
上述定义的函数程序在执行的时候先对该函数进行解释,在解释的时候就对该函数中的形参进行了存储,sum形参只存储了该变量并没有指向任何的对象,list=[]是一个默认值形参,在解释的时候存储了list变量并生成了一个空列表且list变量指向该空列表。列表是可变对象。
def add_end(L=[]):
L.append('END')
return L
多次调用上述函数并且不传入形参值:
['END', 'END', 'END']
得到上述结果的原因是:列表是可变对象,每次修改都是在列表对象的本身进行的修改