扫描二维码,下载手机APP
下载安卓APP箭头
客服QQ
箭头给我发消息

客服QQ:3315713922
论坛 >编程语言 >Python程序员鲜为人知但你应该知道的10个问题 (1)

Python程序员鲜为人知但你应该知道的10个问题 (1)

课课家iOS游客发布于 2018-04-12 09:18查看:9497

这篇文章主要介绍了Python程序员代码编写时应该避免的10个“坑”,也可以说成Python程序员代码编写时应该避免的10个问题,需要的朋友可以参考。

1. 不要使用可变对象作为函数默认值

代码如下:

image.png

这2个例子说明了什么? 字典,集合,列表等等对象是不适合作为函数默认值的. 因为这个默认值实在函数建立的时候就生成了, 每次调用都是用了这个对象的”缓存”. 我在上段时间的分享python高级编程也说到了这个问题,这个是实际开发遇到的问题,好好检查你学过的代码, 也许只是问题没有暴露。

 

可以这样改,代码如下:

image.png


2. 生成器不保留迭代过后的结果

代码如下:

image.png


3. lambda在闭包中会保存局部变量

代码如下:

image.png

这个问题还是上面说的python高级编程中说过具体原因. 其实就是当我赋值给my_list的时候,lambda表达式就执行了i会循环,直到 i =4,i会保留

但是可以用生成器,代码如下:

image.png

也可以坚持用list,代码如下:

image.png

有点不好懂是吧,在看看python的另外一个魔法,代码如下:

image.png

一个分组的函数,看起来很不好懂,对吧? 我们来解析下这里

代码如下:

image.png



4. 在循环中修改列表项

代码如下:

image.png

思考一下,为什么 – 是因为你对列表的remove,影响了它的index

代码如下:

image.png


5. IndexError – 列表取值超出了他的索引数

代码如下:

image.png

收藏(0)0
查看评分情况

全部评分

此主贴暂时没有点赞评分

总计:0

回复分享

版主推荐

    共有0条评论

      • 课课家运营团队
      • Mr ken
      • YUI
      • cappuccino
      • mr jack
      • IT宅男
      • Mright
      • 课课家软考1
      • 选择版块:

      • 标题:

      • 内容

      • 验证码:

      • 标题:

      • 内容

      • 选择版块:

      移动帖子x

      移动到: