Python-参数传递机制

来源:互联网 发布:点点客 知乎 编辑:程序博客网 时间:2024/05/16 23:54

第一句:人生苦短,我用Python

第二句:PHP是世界上最好的语言,我爱Python

好了,回归正题
Python中 万物皆对象,这点很重要
对象有可变与不可变之分,这似乎与参数传递没关系啊,别着急
请看下面的例子:

>>> a="123">>> b=[1,2,3]>>> def f(v1,v2):...     print(id(v1))...     print(id(v2))...     v2[:]=[]...     v1=0... >>> id(a)4330670040>>> id(b)4330637384>>> f(a,b)43306700404330637384>>> id(a)4330670040>>> id(b)4330637384>>> a'123'>>> b[]>>> 

上述例子告诉我们,函数参数是按照引用传递的,按照引用传递的,按照引用传递的!!

对于不可变对象,若在函数内部不改变参数值,访问的是外部参数对象,可变对象也是这样,不同点在于,函数内部对不可变参数的修改,不会产生新的对象,而不可变参数的引用参数被修改后则指向新的对象!原来对象不会改变。

0 0
原创粉丝点击