栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

(any)类的Python类型提示

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

(any)类的Python类型提示

我建议使用的组合

TypeVar
,以指示您的
self.o
值可以是任何任意类型,并
Type
通过以下方式:

from typing import TypeVar, TypeT = TypeVar('T')class MyObj:    def __init__(self, o: T) -> None:        self.o = o    def get_obj_class(self) -> Type[T]:        return type(self.o)def accept_int_class(x: Type[int]) -> None:    passi = MyObj(3)foo = i.get_obj_class()accept_int_class(foo)    # Passess = MyObj("foo")bar = s.get_obj_class()accept_int_class(bar)    # Fails

如果您希望的类型

o
更具动态性,则可以显式或隐式为其指定类型
Any


关于后一个问题,您可以:

def f(cls: Type[T]) -> T:    return cls()

请注意,实例化类时需要小心-我不记得Pycharm在这里做什么,但是我知道mypy当前不会检查以确保您

__init__
正确/正确地调用了函数。 。

(这是因为T可以是任何东西,但无法暗示构造函数的外观,因此执行此检查最终将变得不可能或非常困难。)



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/611298.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号