为了账号安全,请及时绑定邮箱和手机立即绑定

在 Python 中禁止 TypeVar 的特定类型

在 Python 中禁止 TypeVar 的特定类型

摇曳的蔷薇 2021-09-11 19:10:53
有没有什么办法让这个一个Python的TypeVar是不允许绑定到某些类型的?我知道你可以将 TypeVar 限制为某些类型,有一个上限或将其标记为协变/逆变/不变,但似乎没有办法说“TypeVar 不允许是这些类型”。基本上我想说的是类似于std::enable_if_t<!std::is_base_of_v<NotAllowedType, T>>C++ 的内容。例如,T永远不应该是一个Exception:from typing import Union, Generic, TypeVarT = TypeVar('T')class Expected(Generic[T]):    def __init__(self, value_or_error: Union[T, Exception]):        self._value_or_error = value_or_error    def is_valid(self) -> bool:        return not isinstance(self._value_or_error, Exception)但是没有想到一种直接的方法来强制执行此操作。据我所知,大多数泛型(例如 Java、Scala、Kotlin)不支持这一点,但也许我遗漏了一些东西或者有一个解决方法(?)。
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 170 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号