python函数练习题_python函数

2023-02-22 13:55:47 来源:互联网 分享到:


(资料图片)

1、如果是我,我会在函数里面声明b是global的,而不是用似是而非的传值传指针,你这样写是想说b_hash传递的是指针,可惜python里一旦用“=”赋值就已经相当于声明了一个新的变量,所以你的这个问题两种解决办法:第一个,把你要传指针的东西放到列表里:def test(aa,bb):bb[0]=copy.deepcopy(aa)a={1:1}b=[{}]test(a,b)print b[0]这样保证你可以通过b这个名字找到改变后的指针。

2、第二个,在函数里声明你要修改的是全局变量:def test(aa):global bb=copy.deepcopy(aa)a={1:1}b={}test(a)print b当然,你还可以用既不是global也不是local的局部作用域,那可以说叫闭包,但有些不好懂就不说了。

3、楼上的方法思想和第一种一样,但是没做深层拷贝,一层for循环没有递归实现了copy.copy,而不是copy.deepcopy。

本文就为大家分享到这里,希望小伙伴们会喜欢。

关键词: 这个名字 就不说了 就为大家 全局变量

Copyright ©  2015-2022 每日辽宁网版权所有  备案号:京ICP备12018864号-37   联系邮箱:291 323 6@qq.com