python - Python:参数同时遵守两个合同的提示语法
问题描述
我想用类型提示注释我的 Python 3 代码,并且努力寻找交集类型的语法(意味着对象同时尊重所有指定类的方法)。
就像是:
def func(ob: Type[A & B]):
ob.canA() # static type checker should allow methods from A & B
ob.canB() #
ob.cannotC() # but not from some other class C
您可以查看竞争世界中的交集类型: https ://www.typescriptlang.org/docs/handbook/unions-and-intersections.html
它模仿了我所熟悉的(Java 接口)。
请注意,我在这里问了同样的问题:https ://www.reddit.com/r/learnpython/comments/lvp5c1/hint_syntax_that_argument_obeys_two_contracts/并且只得到了一个关于使用非交集类型的联合类型的不相关响应。
我在官方规范中找不到任何有用的东西:
以下规格:
说:
我们可能会补充:
- 交点[t1, t2, ...]。作为每个 t1 的子类型的类型,等等都是 this 的子类型。(与 Union 相比,它的定义中至少有一个而不是每个。)
所以可能是Python中还没有交叉点......
解决方案
推荐阅读
- smartcontracts - 退出币安智能链 DEFI 项目(CORNDEFI)
- react-native - react native 中的 require 和 import 图像有什么区别?
- reactjs - 在 React 中创建按钮的最佳方法是什么
- android - 智能手机和 Wear with Firebase 是否可以同时分发应用?
- angular - src\polyfills.ts 依赖于 'core-js/es6/parse-float'。CommonJS 或 AMD 依赖项可能导致优化救助
- javascript - 如何使用 cookie 跟踪多个弹出窗口?或其他解决方案表示赞赏
- c++ - 为什么 bool 类型的二维数组不包含 0 和 1?
- visual-studio-code - Django 项目中的 VS Code 在虚拟环境中无法识别 Pip 包
- azure-storage - 使用数据盒磁盘将数据上传到文件共享
- postgresql - 将 Postgres 迁移到 Clickhouse