我正在尝试在 Python 3 中使用 mypy 注释我的日志记录模块,但是,我在注释 namer 函数时遇到了问题:
import logging
def _namer(name: str) -> str:
return name + '.gz'
def get_logger(file_name: str, level: str) -> logging.Logger:
logger = logging.getLogger(__name__)
handler = TimedRotatingFileHandler(file_name, backupCount=30, when='midnight')
handler.namer = _namer
return logger
当我运行 mypy 时,将 _namer 分配给 handler.namer 时出现此错误:
error: Incompatible types in assignment (expression has type Callable[[str], str], variable has type "Optional[Callable[[str], None]]")
知道我应该如何注释 _namer 以便 mypy 不会抱怨吗?