您的位置:首页 > 编程语言 > Python开发

Python-参数传递机制

2017-04-29 23:36 162 查看

第一句:人生苦短,我用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)
4330670040
4330637384
>>> id(a)
4330670040
>>> id(b)
4330637384
>>> a
'123'
>>> b
[]
>>>


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

对于不可变对象,若在函数内部不改变参数值,访问的是外部参数对象,可变对象也是这样,不同点在于,函数内部对不可变参数的修改,不会产生新的对象,而不可变参数的引用参数被修改后则指向新的对象!原来对象不会改变。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python