gpt4 book ai didi

python - 参数化泛型不能与类或实例检查一起使用

转载 作者:太空宇宙 更新时间:2023-11-03 14:37:38 26 4
gpt4 key购买 nike

我编写了代码,但在 pycharm(2019.1) 中收到以下消息:“参数化泛型不能与类或实例检查一起使用”

    def data_is_valid(data):
keys_and_types = {
'comment': (str, type(None)),
'from_budget': (bool, type(None)),
'to_member': (int, type(None)),
'survey_request': (int, type(None)),
}

def type_is_valid(test_key, test_value):
return isinstance(test_value, keys_and_types[test_key])

type_is_valid('comment', 3)

我真的不是很理解这个消息。我做错了什么还是pycharm中的错误?如果我明确地类型转换为元组,错误就会消失。

def type_is_valid(test_key, test_value):
return isinstance(test_value, tuple(keys_and_types[test_key]))

screenshot

最佳答案

这看起来像是 pycharm 中的一个错误,假设您正在以一种意想不到的方式使用 typing 模块,这有点过于急切了。请在此处查看此示例,其中该假设是正确的:

enter image description here

typing 模块中的类仅在类型注释上下文中有用,不能检查或与实际类进行比较,而这正是 isinstance 试图做的。由于 pycharm 看到一个带有方括号但不包含文字的简单对象,它会跳转到您看到的错误结论。

您的代码很好,您可以按原样使用它。

关于python - 参数化泛型不能与类或实例检查一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56493140/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com