课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
python编程开发是目前大多数软件开发程序员都在学习的一个编程开发技术,下面我们就通过案例分析来了解一下,python编程常见问题都有哪些。
1.浅复制导致错误
利用好浅复制,可以非常简洁的实现前面提到的元素分组/group功能,但是如果不注意,也会导致非常隐晦的错误!
因为*并不是深拷贝,它只是简单地复制了[a]这个列表,里面的[1,2,3]都是同一个对象,所以改了一个,所有的都会改变。
解决方法是不要使用*号,改用[a.copy()foriinrange(3)]执行深拷贝。如果不需要修改,请直接使用不可变对象。
2.变量作用域
Python中只有模块,类以及函数才会引入新的作用域,其它的代码块是不会引入新的作用域的。(而在C/Java中,任何一个{}块就构成一个局部作用域。另外Julia中for/while/try-catch都是局部作用域,但if-else又不是局部作用域。总之这些小差别要注意。)
局部变量可以与外部变量同名,并且在其作用域中,局部变量会覆盖掉外部变量。
不知是出于实现简单或是性能,还是其他的原因,好像所有的语言都是这样的。其实我更希望变量的作用域覆盖会报错。
如果有函数与其他函数或变量(甚至某些保留字)同名,后定义的会覆盖掉先定义的。(这是因为Python中函数也是对象。而在C/Java中这是会报错的)
如果在内部作用域先访问外部作用域,再定义一个同名的局部变量,解释器就懵逼了。
如果你其实想做的是改变全局变量i的值,就应该在开头声明globali.而如果外部变量i不是存在于全局作用域,而是在某个闭合作用域内的话,就该用nonlocali
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。