1

python 函数返回值的特殊情况

© laowang/ 2011-1-17 / 09:12

今天没事和大家一起聊聊python 函数返回值的特殊情况,之前我也碰到过类似方面的问题,到后来查阅了一些资料后,发现原来是这样!

我记得很久以前和大家聊过python列表操作方法python列表非常的强大,提供了很多内置的方法使得你可以通过python的列表结构和操作做很多你想要的事情,我记得它里面有一些方法,比如append,还有sort方法,这几个方法应该在你的程序里时不时会出现吧,可见频率之高!我当时开始学习的话,用这2个列表方法的话,我是按照下面的方式来用的:

a = [1,5,11,2]
x = a.append('b')

y = a.sort()

我当时学python的时候也许是受其它语言的影响,认为只要是函数的话,就有返回值,应该就可以返回一些想要的结果,其实你自己在编辑器里运行
上面的方法的话,输出的结果不会是你想要的,而是一片空白!呵呵。原因在哪呢?

原来python的有些内置方法是不返回具体的内容的,而是返回一个None,这个就是今天我想说的一个话题,return在python函数里面是可选的,当一个函数无法准确的返回值时,函数就会运行到最后然后退出,也就是说所有的函数都有返回值,如果你不提供返回值的话,函数默认返回一个None。append,sort等方法应该就属于这个情况,所以大家以后碰到函数返回值输出空白的话,那就要想想是不是返回None,而只是你原来的变量被原地的改变了。


原创文章请注明转载自老王python,本文地址:http://www.cnpythoner.com/post/139.html
作者:老王@python python 教程
老王python,提供python相关的python 书籍,python 主机,django 教程和python 下载,希望大家能够喜欢!

文章内容皆为人工编辑,如有错误,敬请指正。谢谢你关注

上一篇:  做个调查:技术书籍新书和旧书,你选哪个? 下一篇:  分享python def和lambda的一点心得

本文有 1 篇评论

  1. 1 znetor 说 :
    2011-1-17 15:32:03
    avatar

    这点我非常清楚 ~
    In [1]: l=[1,3,4,5,6]

    In [2]: type(l.pop())
    Out[2]: <type 'int'>

    In [3]: type(l.sort())
    Out[3]: <type 'NoneType'>

    In [4]: l
    Out[4]: [1, 3, 4, 5]

    而且我在def 一个函数的时候 有几个也没返回值

    def ls():
    os.system('ls')

    这样很方便
    谢谢老王的指点~

发表你的见解