Python如何引用参数传递对象
小编这次要给大家分享的是Python如何引用参数传递对象,文章内容丰富,感兴趣的小伙伴可以来了解一下,希望大家阅读完这篇文章之后能够有所收获。
大家都知道在python中,一切皆对象,变量也不再具有类型,变量仅仅是对象的一个引用,我们通常用变量来测类型,通常测得就是被这个变量引用得对象的类型。
python采用的是传递对象的引用,为了方便说明,我们来看一个例子:
test = [1]def change1(a): a = [2]def change2(a): a.append(3)change1(test)change2(test)print test
我们来看一下最后的输出:
[1,3]
是不是有人误以为是[2,3]?那你可得好好看接下来的内容。
传参传的是对象的引用!!!!!!
所以在change1(a)函数中,我们知道形参a与test引用了同一块内存空间,然后a在函数内部被修改了,它执行了另一块内存空间,也就是存放[2]的地方,但是只是a的指向改变了,test的指向还是存放[1]的内存空间。所以,接下来change2()对这块内存空间上放的值进行了修改,就得到了我们最后看到的结果。
为了加深理解,我觉得有必要再举一个类继承的例子:
class Parent(object):x = 1​ class Child1(Parent):pass​ class Child2(Parent):pass​ print Parent.x, Child1.x, Child2.xChild1.x = 2​ print Parent.x, Child1.x, Child2.xParent.x = 3​ print Parent.x, Child1.x, Child2.x​输出结果为:1 1 11 2 13 2 3
在继承中,所有子类中的x原本都是引用的父类中x对象的存储空间,但是child1中的x单独指向了另一块存储空间。这样以来,的到这个结果也就不意外了
看完这篇关于Python如何引用参数传递对象的文章,如果觉得文章内容写得不错的话,可以把它分享出去给更多人看到。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。