无返回值的Python main函数如何正确进行类型标注
Python 无返回值main函数的正确类型标注
因为你明确main函数没有任何返回值,标准标注方式是给返回值声明None类型,示例代码如下:
def main() -> None: # 此处写你的业务逻辑 print("脚本执行逻辑") if __name__ == '__main__': main()
标注说明
-> None会明确告知mypy、pyright等类型检查工具,该函数执行完成后不会返回任何有效值,如果你不小心在函数内写了带值的return语句,类型检查工具会直接抛出错误,符合你的场景要求。- 不要使用
NoReturn作为返回类型,NoReturn仅用于标记永远无法正常执行完成的函数(比如一定会抛出异常、一定会调用os._exit终止进程的函数),普通执行完成自然退出的main函数不适用该标注。
带命令行参数的main标注示例
如果你的main需要接收命令行参数,可以同步标注参数类型:
import sys def main(argv: list[str]) -> None: if len(argv) < 2: print("请传入必要参数") return print(f"输入参数为:{argv[1]}") if __name__ == '__main__': main(sys.argv)
如果需要兼容Python 3.9及更早版本,在脚本顶部添加from __future__ import annotations即可避免集合类型标注的运行时报错。
内容的提问来源于stack exchange,提问作者user3313834
相关产品推荐
相关产品推荐

