"main function" (if __name__ == "__main__") 应该有类型提示吗?
Should the "main function" (if __name__ == "__main__") have a type hint?
我知道在我的 Python 代码中向函数添加类型提示是一种很好的做法。这有助于在阅读代码时弄清返回的值类型,并且还可以在单元测试中验证此元数据。
但是,我不确定是否应该向我的“主”函数添加类型提示。
我尝试搜索“main python 的类型提示”和“main 函数是否有类型提示 python”,但我找不到问题的答案.也许我只是遗漏了一些明显的东西。
我的问题是:Python 中的 if __name__ == "__main__":
应该添加类型提示 -> None
吗?
换句话说,它应该是这样的:
if __name__ == "__main__" -> None:
关键点是 Python“main”[“function”] 不是函数(正如在 Stack Overflow 上的许多其他问答中所讨论的那样)。相反,它是一个 if 子句。 您只能在函数中使用类型提示,而不能在 if 子句中使用。
类型提示有助于快速概览 returned 的内容,并且它们可用于单元测试。在“main”的情况下都不可行,它不能 return 任何东西。
示例证明:如果您尝试,VSCode/Codium 例如显示一个红色箭头:
如果您尝试 运行 代码,解释器会抛出一堆 IndentationError: unexpected indent
错误。
注意: 一个重要的例外是您在 Python Google 云函数 (CF) 中使用的 main()
函数因为它传递了一个响应参数,因此是一个函数。这个 CF main()
可以有一个 return,你应该像对待任何其他函数一样给它一个类型提示。对于不在 CF 中的类似代码当然也是如此。
我知道在我的 Python 代码中向函数添加类型提示是一种很好的做法。这有助于在阅读代码时弄清返回的值类型,并且还可以在单元测试中验证此元数据。
但是,我不确定是否应该向我的“主”函数添加类型提示。
我尝试搜索“main python 的类型提示”和“main 函数是否有类型提示 python”,但我找不到问题的答案.也许我只是遗漏了一些明显的东西。
我的问题是:Python 中的 if __name__ == "__main__":
应该添加类型提示 -> None
吗?
换句话说,它应该是这样的:
if __name__ == "__main__" -> None:
关键点是 Python“main”[“function”] 不是函数(正如在 Stack Overflow 上的许多其他问答中所讨论的那样)。相反,它是一个 if 子句。 您只能在函数中使用类型提示,而不能在 if 子句中使用。
类型提示有助于快速概览 returned 的内容,并且它们可用于单元测试。在“main”的情况下都不可行,它不能 return 任何东西。
示例证明:如果您尝试,VSCode/Codium 例如显示一个红色箭头:
如果您尝试 运行 代码,解释器会抛出一堆 IndentationError: unexpected indent
错误。
注意: 一个重要的例外是您在 Python Google 云函数 (CF) 中使用的 main()
函数因为它传递了一个响应参数,因此是一个函数。这个 CF main()
可以有一个 return,你应该像对待任何其他函数一样给它一个类型提示。对于不在 CF 中的类似代码当然也是如此。