python的有些内置方法是不返回具体的内容的,而是返回一个None。
并不是所有的函数都需要返回值,有一些函数只需要在内部处理些东西,如果要输出,可以直接通过print函数输出信息,那么在这种情况下,就没有必要返回函数。
如果Python函数没有返回值,千万不要把结果赋值给其他变量,因为没有返回值,被赋值的变量是空值(None类型不支持任何运算也没有任何内建方法),当你进行操作时,可能出现下面错误:
'NoneType' object has no attribute '__getitem__'
>>> a = [1,2,2,3,5]
>>> a.reverse()
>>> a
[5, 3, 2, 2, 1]
>>> b = a.reverse()
>>> b
>>> a
[1, 2, 2, 3, 5]
>>> a.append(0)
>>> a
[1, 2, 2, 3, 5, 0]
>>> c = a.append(10)
>>> c
>>> a
[1, 2, 2, 3, 5, 0, 10]
>>> a.sort()
>>> a
[0, 1, 2, 2, 3, 5, 10]
>>> d = a.sort()
>>> d
>>> type(d)
<class 'NoneType'>
>>> type(c)
<class 'NoneType'>
>>> type(b)
<class 'NoneType'>
>>> type(a)
<class 'list'>
>>>
>>> print(a)
[0, 1, 2, 2, 3, 5, 10]
>>> print(a.reverse)
None # 记住这里,如果在函数中想要翻转,别省事,否则结果可能不是你想要的,分两步返回翻转结果,如下:
>>> a
[0, 1, 2, 2, 3, 5, 10]
>>> a.reverse()
>>> print(a)
[10, 5, 3, 2, 2, 1, 0]
>>>
reverse,append,sort等方法就没有返回值,故吧b,c,d都是空的。
没有返回值,不使用return语句就可以了,或使用return语句,但return后面什么都没有。后一种情况主要是用于从函数的任意深度的代码直接跳出函数。