相关文章推荐
跑龙套的牛肉面  ·  一款强大的子域名收集工具OneForAll_ ...·  1 年前    · 
不拘小节的小蝌蚪  ·  10个有用的自定义钩子vue.js - 掘金·  3 年前    · 
Code  ›  正确使用Python泛型-如何获得泛型变量的类型,并在初始化后一致地在对象中强制执行该类型?开发者社区
python 初始化 泛型
https://cloud.tencent.com/developer/ask/sof/866009
被表白的大葱
2 年前
首页
学习
活动
专区
工具
TVP
返回腾讯云官网
提问
问 正确使用Python泛型-如何获得泛型变量的类型,并在初始化后一致地在对象中强制执行该类型?
Stack Overflow用户
提问于 2019-12-17 12:17:00
EN

假设有一个包含值和名称的泛型类 Test :

T = TypeVar("T", str, int, float, bool)
class Test(Generic[T]):
    def __init__(self, name: str, value: T):
        self._name: str = name
        self._value: T = value
        self._type: type = T
    def set(self, new: T) -> None:
        self._value = new
    def get(self) -> T:
        return self._value
    def get_type(self) -> type:
        return self._type

上面的代码并没有完成我想要做的事情--您可以将任何类型 .set 作为新值,而不仅仅是创建对象时的初始类型 T 。我也不知道如何提取 T 类型--如何在不调用 type(test_object.get()) 的情况下判断它是否是字符串、整型、浮点型、布尔型

bool_var = Test("test", True)
# none of the below works the way I would have hoped:
bool_var.set("str is not a bool")
print("How do I raise an exception on the above line using Generic types?")
 
推荐文章
跑龙套的牛肉面  ·  一款强大的子域名收集工具OneForAll_oneforall工具-CSDN博客
1 年前
不拘小节的小蝌蚪  ·  10个有用的自定义钩子vue.js - 掘金
3 年前
今天看啥   ·   Py中国   ·   codingpro   ·   小百科   ·   link之家   ·   卧龙AI搜索
删除内容请联系邮箱 2879853325@qq.com
Code - 代码工具平台
© 2024 ~ 沪ICP备11025650号