【问题标题】:In python, if a function doesn't have a return statement, what does it return?在python中,如果一个函数没有return语句,它会返回什么?
【发布时间】:2013-02-27 14:28:51
【问题描述】:

给定这个示例函数:

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

这个return True 语句有什么用处吗?

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

【问题讨论】:

  • 该函数将始终返回True 或引发错误,因此return 在这里用处不大。
  • 谢谢!这些你的回答给了我很大的启发,我想我会在 stackoverflow 上提出更多问题,并尽我所能。
  • 仅供参考,f.writelines(line+'\r\n') 碰巧有效,但非常浪费;它将参数视为一个序列并写出每个元素; str 是其字符的可迭代对象,因此它实际上是 write-ing 每个字符(缓冲使您免于实际的系统调用开销,但仍然需要更多工作)。 f.write(line+'\r\n') 会得到相同的结果,并作为一个块写入,而不是逐个字符。

标签: python python-3.x


【解决方案1】:

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

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

【讨论】:

  • +1 用于实际解释 None 等于 False 在真值方​​面。
  • 对不起,我只是一个初学者,当函数需要处理异常时我会小心的。顺便说一句,我测试过如果我什么都不返回,它会返回 None。谢谢
【解决方案2】:

如果没有对其功能进行归因或检查,则单独使用 return 语句没有多大意义。

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

【讨论】:

  • 感谢您的回答。当我能从千里之外得到帮助时,我感觉很酷。
【解决方案3】:

如果你在函数末尾有return True,你可以这样说:a=writeFile(blah, blah)

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

如果您没有明确返回任何内容,则该值将为None

【讨论】:

  • 我认为确实如此,事实上,只有在文件写入正确的情况下才会返回 True。
【解决方案4】:

如果没有写明确的return,函数总是返回None

【讨论】:

    猜你喜欢
    • 2018-11-20
    • 1970-01-01
    • 2016-06-12
    • 2011-04-13
    • 2022-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-14
    相关资源
    最近更新 更多