Python输入中的可下标类型

乔纳森·舒尔巴赫

我想类型检查函数的参数是否可以下标。如何使用Python的typing模块执行此操作

我已经搜索了文档,但没有找到任何东西。但是也许可以创建一个自定义Type我该怎么办?

宫城先生

暗示标准的__getitem__行为,使用的通用版本collections.abc,如typing.Sequencetyping.MutableSequencetyping.Mapping,或typing.MutableMapping

from typing import Mapping

def get(container: Mapping, key):
    return container[key]

get({1: 'one', 2: 'two'}, 2)

要键入hint支持的任何类型,请__getitem__定义typing.Protocol具有所需行为的自定义

from typing import Protocol, Any

class Lookup(Protocol):
      def __getitem__(self, key) -> Any: ...

def get(container: Lookup, key):
    return container[key]

get(['zero', 'one', 'two'], 2)

注意,序列和映射类型是通用的,协议也可以定义为通用的。

from typing import Protocol, TypeVar

K = TypeVar('K', contravariant=True)
V = TypeVar('V', covariant=True)


class Lookup(Protocol[K, V]):
    def __getitem__(self, key: K) -> V: ...


def get(container: Lookup[K, V], key: K) -> V:
    return container[key]


get({1: 'one', 2: 'two'}, 2)    # succeeds type checking
get({1: 'one', 2: 'two'}, '2')  # fails type checking

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

python函数中的类型错误(int对象不可下标)

来自分类Dev

类型对象不可下标-python

来自分类Dev

Python - 类型错误:“图形”对象不可下标

来自分类Dev

Python TicTacToe 错误:类型错误:“函数”对象不可下标

来自分类Dev

类型错误:“int”对象不可下标 - Python3

来自分类Dev

“类型”对象在函数定义中不可下标

来自分类Dev

类型错误:“产品”对象在 Flask 中不可下标

来自分类Dev

TypeError:“ int”对象在Python3中不可下标

来自分类Dev

Python 3.8中的连续'TypeError:'function'对象不可下标'

来自分类Dev

类中的可下标对象

来自分类Dev

类型错误函数不可下标

来自分类Dev

类型错误:“int”对象不可下标?

来自分类Dev

类型错误:“机架”对象不可下标

来自分类Dev

类型错误:“方法”对象不可下标

来自分类Dev

类型错误:“发布”对象不可下标

来自分类Dev

类型库中的示例代码导致TypeError:“类型”对象不可下标,为什么?

来自分类Dev

Python'TypeError':'Generator'对象不可下标

来自分类Dev

Python:TypeError:“ int”对象不可下标

来自分类Dev

TypeError:'float'对象不可下标--Python

来自分类Dev

Python TypeError:“设置”对象不可下标

来自分类Dev

TypeError:“ NoneType”对象不可下标(PYTHON)

来自分类Dev

Python TypeError:“函数”对象不可下标

来自分类Dev

Python错误:int对象不可下标

来自分类Dev

字典的类型提示给出TypeError:“类型”对象不可下标

来自分类Dev

类型错误:“类型”对象不可下标+迭代为“A”而不是A

来自分类Dev

类型错误,iteratig期间“方法”对象不可下标

来自分类Dev

使用数组获取“ TypeError:'类型'对象不可下标”

来自分类Dev

类型错误:“int”对象不是可下标的行

来自分类Dev

Python:使用API从JSON中提取数据,然后发送到Excel。获取类型错误:NoneType对象不可下标

Related 相关文章

  1. 1

    python函数中的类型错误(int对象不可下标)

  2. 2

    类型对象不可下标-python

  3. 3

    Python - 类型错误:“图形”对象不可下标

  4. 4

    Python TicTacToe 错误:类型错误:“函数”对象不可下标

  5. 5

    类型错误:“int”对象不可下标 - Python3

  6. 6

    “类型”对象在函数定义中不可下标

  7. 7

    类型错误:“产品”对象在 Flask 中不可下标

  8. 8

    TypeError:“ int”对象在Python3中不可下标

  9. 9

    Python 3.8中的连续'TypeError:'function'对象不可下标'

  10. 10

    类中的可下标对象

  11. 11

    类型错误函数不可下标

  12. 12

    类型错误:“int”对象不可下标?

  13. 13

    类型错误:“机架”对象不可下标

  14. 14

    类型错误:“方法”对象不可下标

  15. 15

    类型错误:“发布”对象不可下标

  16. 16

    类型库中的示例代码导致TypeError:“类型”对象不可下标,为什么?

  17. 17

    Python'TypeError':'Generator'对象不可下标

  18. 18

    Python:TypeError:“ int”对象不可下标

  19. 19

    TypeError:'float'对象不可下标--Python

  20. 20

    Python TypeError:“设置”对象不可下标

  21. 21

    TypeError:“ NoneType”对象不可下标(PYTHON)

  22. 22

    Python TypeError:“函数”对象不可下标

  23. 23

    Python错误:int对象不可下标

  24. 24

    字典的类型提示给出TypeError:“类型”对象不可下标

  25. 25

    类型错误:“类型”对象不可下标+迭代为“A”而不是A

  26. 26

    类型错误,iteratig期间“方法”对象不可下标

  27. 27

    使用数组获取“ TypeError:'类型'对象不可下标”

  28. 28

    类型错误:“int”对象不是可下标的行

  29. 29

    Python:使用API从JSON中提取数据,然后发送到Excel。获取类型错误:NoneType对象不可下标

热门标签

归档