python-如何对具有可选参数的装饰器进行类型注释?
发布时间:2020-12-17 17:39:17 所属栏目:Python 来源:网络整理
导读:这是我要正确键入注释的确切函数: F = TypeVar('F',bound=Callable[...,Any])def throtle(_func: Optional[F] = None,*,rate: float = 1) - Union[F,Callable[[F],F]]: """Throtles a function call,so that at minimum it can be called every `rate` seco
这是我要正确键入注释的确切函数:
尽管通过mypy进行插入时没有出现任何错误,但我不确信自己做对了,也不确定如何证明这一点. 最佳答案
您的代码会进行类型检查,但可能不会执行您想要的操作,因为您将返回一个Union.
要检查mypy推断某个变量的类型,可以使用reveal_type.
假设我们希望hello1是一个返回int的函数(即def()-> builtins.int),我们需要尝试其他方法. 简单策略 最简单的事情是始终要求节流阀的用户“呼叫装饰器”,即使她/他没有重写任何参数也是如此:
这已经有效并且非常简单. 使用type.overload 如果先前的解决方案不可接受,则可以使用重载.
您可以通过阅读its official documentation和mypy’s documentation on Function overloading了解更多有关如何使用重载的信息. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
- python – 将系列分类到pandas中的新列
- python exceptions.UnicodeDecodeError:’ascii
- 线程,CultureInfo .net,TPL,PLINQ
- Python解惑之True和False详解
- 打一辈子工感觉也在上海买不起一套二手房!Pytho
- 如何使用 Pylint 来规范 Python 代码风格(来自IB
- python – 长度为k的非重叠子串的随机抽样
- python – 当jac = False时,当jarobian没有被使用
- Django Admin不工作/丑陋 – 与nginx和gunicorn一
- Python的几个高级语法概念浅析(lambda表达式闭包
热点阅读