python - 如何正确地向装饰器添加类型提示?
问题描述
我目前正在编写和学习装饰器(带和不带参数)。这是一个带有一个参数的装饰器示例,该参数将函数的输出重定向到日志文件。该代码有效,但我的问题如下:
- 处理装饰器时使用类型提示的正确方法是什么?
- 装饰器应该有文档字符串吗?如果是这样,在我的示例中,文档字符串是否正确/完整?
先感谢您!
def 重定向输出(日志文件): """ 装饰器将函数的标准输出写入输出重定向到指定的 日志文件。 参数: log_file (str):输出将被重定向到的日志文件的路径。 """ def redirect_output_decorator(func): @functools.wraps(func) def redirect_output_wrapper(*args, **kwargs) -> 任意: 输出 = StringIO() 使用重定向标准输出(输出): func(*args, **kwargs) output_lines = output.getvalue().splitlines() 如果输出线: file_logger("来自 {} 的输出:".format(func.__name__), log_file) 对于 output_lines 中的行: file_logger(行,log_file,with_date=False) 返回 redirect_output_wrapper 返回重定向输出装饰器
解决方案
推荐阅读
- android - Firebase 推送通知不会振动手机
- html - Firefox 在 100vh 上错误地显示垂直滚动条。(Chrome 和 Safari 不显示滚动条)
- video - FFmpeg:如何为视频幻灯片添加淡入淡出效果?
- r - 如何使用 R Markdown 在 html 输出中创建动画
- php - OctoberCMS - Rainlabs 博客插件 - foreach 类别显示博客文章
- python - Pyramid:如何使用 @view_defaults 和 @view_config 创建一个 REST 服务器,其中的类在单独的文件中
- arrays - 在 bash 脚本中循环数组之前从数组中的项设置变量
- php - 使用 hybridauth 时缺少 redirect_uri 参数和无效的 grant_type
- asp.net - 将在 docker (windows) 容器中运行的 webapp 连接到在 AWS 私有子网上运行的 SQL Server
- html - 将样式应用于 div 但不是子级