前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python编程一定要注意的那些“坑”(七)

Python编程一定要注意的那些“坑”(七)

作者头像
Python小屋屋主
发布2018-04-16 17:17:52
7140
发布2018-04-16 17:17:52
举报
文章被收录于专栏:Python小屋

已发“坑”列表:Python函数默认值参数的2个坑,Python编程中一定要注意的那些“坑”(一),Python编程中一定要注意的那些“坑”(二),Python中一定要注意的那些“坑”(三),Python编程一定要注意的那些“坑”(四),Python编程一定要注意的那些“坑”(五),Python编程一定要注意的那些“坑”(六)

今天介绍一下函数返回值的“坑”,其实严格来说这并不是坑,而是程序员不熟悉或者不注意函数或方法的工作机制和返回值造成的。

在Python中,如果函数或方法中没有return语句、有return语句但是没有执行到、有return语句也执行到了但是该return语句没有返回任何值,那么Python都会认为这个函数或方法返回的空值None。

看下面的代码:

from random import shuffle

lst = list(range(20)) lst = shuffle(lst) print(lst.index(5))

这段代码无法运行,并抛出下面的异常:

Traceback (most recent call last): File "C:\Python36\test.py", line 5, in <module> print(lst.index(5)) AttributeError: 'NoneType' object has no attribute 'index'

原因在于,标准库random的shuffle()随机打乱列表中元素顺序的操作属于原地操作,也就是说直接对列表进行操作,并没有返回值,或者说返回控制None,而None是没有index()方法。

上面的代码对shuffle()函数的用法是错误的,正确的应该是下面的样子:

from random import shuffle

lst = list(range(20)) shuffle(lst) print(lst.index(5))

在使用内置函数、标准库函数、扩展库函数或对象方法时,一定要注意它们的用法,是原地操作还是返回处理后的新对象,这决定了该函数或方法的用法。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2017-04-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python小屋 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档