python – 键入,自定义集合类型
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python – 键入,自定义集合类型,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1131字,纯文字阅读大概需要2分钟。
内容图文
打字模块提供了一些方便的功能,以提高可读性,并更加确信所输入代码的正确性.
最好的功能之一是您可以编写类似下面的内容来描述具有指定元素类型的输入字典.
def myFun(inputDict:Dict[str, int]): pass
现在我想知道,这可以“扩展”到自定义类型吗?是否可以以正式方式为自定义类型检查器提供自定义类型(其作用类似容器)的索引,内容必须是特定类型的?
例如collections.Counter类? – 当我真正想要一个计数器时,上面的约束将不起作用,因为字典不提供计数器所在的加法运算符.
我可以这样做:
def myFun(inputDict:collections.Counter): pass
但后来我失去了柜台商店的信息. – 在这里使用TypeVar是正确的方法吗?
CounterTy = typing.TypeVar("CounterTy", collections.Counter)
def myFun(inputDict:CounterTy[str]): pass
我不清楚Typevar是否应该以这种方式工作.编辑:只是要清楚,上面的代码不起作用和TypeVar线上的错误.
解决方法:
如果您正在编写自己的容器类型并希望以与键入.Dict和其他类型相同的方式对其进行参数化,则应使用typing.Generic作为基础之一(以TypeVar作为其参数):
from typing import TypeVar, Generic, Iterable
T = TypeVar('T')
class MyContainer(Generic[T]):
def __init__(self, iterable:Iterable[T]):
...
def foo(self) -> T:
...
def some_function(arg: MyContainer[str]) -> str:
return arg.foo()
内容总结
以上是互联网集市为您收集整理的python – 键入,自定义集合类型全部内容,希望文章能够帮你解决python – 键入,自定义集合类型所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。