首页 > 编程 > Python > 正文

python参数传递方式

2019-11-11 07:52:34
字体:
来源:转载
供稿:网友

python参数传递是以传引用的方式!

如果函数接收到的参数是一个可变对象(类类型,列表,字典),就会改变对象的原始值。 如果函数接收到的参数是一个不可变对象,即基本数据类型(数值型,字符串,布尔),就不会改变对象的原始值。

无论什么参数,都是传引用,只不过基本数据类型的赋值其实是重新构造并指向了一个新的对象,内存地址不一样,可以用id()来查询内存地址~

对于可变对象(类类型,列表,字典)来说,如果直接x=y的话,x和y的内存地址相同;如果只是想简单赋值,就得用 x=y[:]。(如eg1所示) 对于不可变对象(数值型,字符串,布尔)来说,直接等就可以了,两种赋值方式并无区别,且 x=y[:]这种方式并不是所有数据类型都适用,比如int就会报错(如eg2所示)

eg1:

x= [1,3]PRint id(x)y = x[:]print 'y:(y = x[:])'print yprint id(y)yy = xprint 'yy:(yy = x)'print yyprint id(yy)print "*************************************"x2 = 'c'print id(x2)y2 = x2[:]print 'y2:(y2 = x2[:])'print y2print id(y2)yy2 = x2print 'yy2:(yy2 = x2)'print yy2print id(yy2)

这里写图片描述

eg2:

x= 66print id(x)y = xprint 'y:(y = x)'print yprint id(y)yy = x[:]print 'yy:(yy = x[:])'print yyprint id(yy)

这里写图片描述


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表