typing - 在 mypy 中使用函数签名作为可调用参数的类型
问题描述
如果我有这样的函数,那需要一个可调用的:
def some_func(my_func: Callable[[int, str], None], x: int, y: str) -> None:
my_func(x, y)
而且我有我计划传入的可调用函数及其所有类型提示:
def the_function(x: int, y: str) -> None:
# do something
return None
两个函数中可调用的签名是相同的,这有点愚蠢。是否可以将它抽象成一个变量,所以你有类似的东西:
SigType = Callable[[int, str], None]
def some_func(my_func: SigType, x: int, y: str) -> None:
pass
# I'm sure this won't work, but you know what I mean, I hope
def the_function(**SigType) -> None
pass
即使是文档中的示例在打字方面也有这种奇怪的冗余,所以很好奇它是否被解决了。
解决方案
推荐阅读
- jenkins - 无法为类 org.jenkinsci.plugins.workflow.job.WorkflowRun 序列化 hudson.model.Actionable#Actions
- linux - 操作系统级别的 Erlang 套接字
- google-apps-script - 如何识别为一张 Google 表格提供多个 Google 表单?
- python - 我可以通过存根文件让 VSCode 引用外部函数而无需导入它们吗?
- arduino - 使用 Arduino Mega 而不是 Uno 作为电容传感器
- excel - 从 Microsoft Excel 遍历所有 Microsoft Word 文档(包括所有打开的 Word 应用程序)
- ruby-on-rails - 无法从 Git 提交中获取已删除的文件
- python - 如何打破循环
- android - 片段是否有等效的 parent_activity ?
- css - CSS 边框折叠在 td 内的 display:flex 中不能在 Chrome 中完全工作?