Python-参数传递机制

第一句:人生苦短,我用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
[]
>>> 

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值