Python自定义Logger函数返回类型标注正确性及正确写法问询
问题解答
错误原因
你当前的返回类型标注是不正确的:logging.getLogger本身是用来生成logger实例的函数,并不是你返回的logger对象的类型。
正确返回类型
应该使用logging.Logger作为返回类型标注,这是所有通过logging.getLogger()生成的logger实例对应的标准类型。
修正后代码示例
import logging def get_logger(param1: str, ...) -> logging.Logger: logger = logging.getLogger(__name__) # define format # add handlers return logger
补充说明
- 如果你使用的Python版本低于3.10,担心直接引用
logging.Logger带来不必要的运行时导入开销,也可以用字符串字面量形式标注-> "logging.Logger",主流类型检查工具(如mypy、pyright)都可以正常识别。 - 该写法是目前兼容性最好、最通用的标注方式。
内容的提问来源于stack exchange,提问作者navneethc
相关产品推荐
相关产品推荐

