〔大佬帮帮萌新!〕
python吧
全部回复
仅看楼主
level 2
柿原里绪
楼主
如图,就是这个函数,为什么在定义b后,a也跟着发生了改变。不应该是a=b=[1]吗。
是什么原因让a和b变成了[1,1]呢?
请大佬帮帮忙!谢谢了!
2019年02月22日 16点02分
1
level 5
S_hmy
这个不对!牵扯有点多!大概,总结就是谨慎用参数初始化! 你可以函数提内加一个临时变量!返回临时变量的数据! 具体原因是,引用计数!
2019年02月23日 00点02分
2
level 1
黄焖鸡米饭天天
引用的问题
a=yui()表示把等号右边的引用告诉左边,左边也指向yui()的引用!
此时a为运行了一次yui的结果【1】,指向的引用和def yui()指向的引用一样
第二次 b=yui()同理还是指向之前的引用 并不是你以为的开辟了一个新的内存空间
所以 此时 b 和 a指向同一个引用 并且运行了两次yui() 所以是【1,1】
2019年02月24日 04点02分
4
黄焖鸡米饭天天
修正,应该是等式左边也指向了yui的引用! python一切皆对象
2019年02月24日 04点02分
level 1
黄焖鸡米饭天天
如何查ab是不是指向同一个引用?
方法:打开ipython :
>>def yui(k=[]):
>>k.append(1)
>>return k
>>a=yui()
>>b=yui0
>>主要步骤来了
>>a
会输出一个地址,这里叫做x
>>b
会输出一个地址这里叫做y
自己看看x和y是不是一样的!
2019年02月24日 04点02分
5
1