Python仅含副作用无返回值的函数的正确返回类型提示如何选择
问题解答
正确选项
选1,返回值类型提示标None即可。
判定依据
- 这是Python的固有语法规则:只要函数没有显式写return语句,或者return后面没有跟要返回的内容,函数执行完成后默认就返回
None,该规则和函数是做写入操作还是其他逻辑、有没有副作用完全无关。 - 其余选项直接排除:
- 选项2的
typing.IO是文件对象的类型标记,该函数根本没有返回打开的文件句柄,和场景完全不匹配。 - 注意不要和
typing.NoReturn混淆:NoReturn仅用于标记永远无法正常执行完成的函数,比如函数内部一定会抛出异常、会直接终止进程,跑不到函数结束的场景,本题的函数可以正常执行结束,只是返回值为None,因此不能用NoReturn。
- 选项2的
补充说明
你给出的示例代码存在笔误,函数内写的file.write(n)是错误调用:file是传入的路径参数,通过open拿到的文件对象是变量f,同时文本模式打开的文件不能直接写入整数,需要改为f.write(str(n))才能正常运行。
内容的提问来源于stack exchange,提问作者tuatara
相关产品推荐
相关产品推荐

