在python中,如果函数没有';如果没有return语句,它会返回什么?

在python中,如果函数没有';如果没有return语句,它会返回什么?,python,python-3.x,Python,Python 3.x,给定此示例函数: def writeFile(listLine,fileName): '''put a list of str-line into a file named fileName''' with open(fileName,'a',encoding = 'utf-8') as f: for line in listLine: f.writelines(line+'\r\n') return True 这个返回True语

给定此示例函数:

def writeFile(listLine,fileName):
    '''put a list of str-line into a file named fileName'''
    with open(fileName,'a',encoding = 'utf-8') as f:
        for line in listLine:
            f.writelines(line+'\r\n')
    return True
这个
返回True
语句有用吗


有它和没有它有什么区别?如果没有返回函数会发生什么?

如果函数没有指定返回值,它将返回
None


在if/then条件语句中,
None
的计算结果为False。因此,理论上,您可以检查此函数的返回值是否成功/失败。我之所以说“理论上”,是因为对于这个问题中的代码,函数不捕获或处理异常,可能需要额外的强化。

如果未编写显式
返回
,则函数始终返回
None

如果函数末尾有
返回True
,你可以这样说:
a=writeFile(废话,废话)

然而,因为它总是
真的
,所以它完全没有意义。如果文件写入正确,最好返回True,等等


如果没有显式返回任何内容,则值将为
None

如果没有属性或功能检查,单独使用return语句没有多大意义


如果不返回任何内容,Python将返回None。在您的情况下,如果打开文件和写入成功,您可能应该返回true

函数将始终返回
true
或引发错误,因此
返回在这里不太有用。谢谢!您的回答给了我很大的启发,我想我会问更多关于stackoverflow的问题,也会尽我所能。仅供参考,
f.writelines(line+'\r\n')
碰巧可以工作,但这是难以置信的浪费;它把论点当作一个序列,写出每个元素
str
是它们的可编辑字符,因此可以有效地
分别写入每个字符(缓冲可以节省实际的系统调用开销,但仍需要大量工作)
f.write(line+'\r\n')
将得到相同的结果,并作为一个块而不是一个字符一个字符地写入。+1用于实际解释在真值方面,None等于False。很抱歉,我只是一个初学者,当函数需要处理异常时,我会小心。顺便说一句,我已经测试过,如果我什么都不返回,不会有结果的。谢谢你的回答。当我能从千里之外得到帮助时,我觉得很酷。事实上,我认为只有当文件写得正确时,它才会返回True。