【问题标题】:Pycharm: Type hint list of itemsPycharm:类型提示项目列表
【发布时间】:2016-09-27 23:31:25
【问题描述】:

我的问题不同,因为我使用类型提示出错了。

我在 pycharm 中发现了一个奇怪的类型:

Example 是我自己的班级。但我想这不太重要,因为 IDE 抱怨 list 类型没有定义 __getitem__ 方法,这是不正确的。我想知道这是一个错误还是我以错误的方式使用它。

【问题讨论】:

标签: python pycharm


【解决方案1】:

根据official PEP 表示你应该使用typing.List 的对象列表,而不是list 内置。

from typing import List


class Something:
    pass


def f(seq: List[Something]):  # no warning
    for o in seq:
        print(o)

2021 年 1 月更新:

请注意,内置泛型是在 Python 3.9 中实现的,如 PEP585 中所述。

【讨论】:

【解决方案2】:

Łukasz 解释了如何更正您的代码。我将解释为什么错误消息说明了它的作用。

list 定义了__getitem__,是的,但这不是错误消息所抱怨的。错误消息是说type 本身,它是list type's 类型,不支持__getitem__。要使list[whatever] 有效,type 必须定义 __getitem__ 方法,而不是 list。

【讨论】:

    猜你喜欢
    • 2013-12-26
    • 1970-01-01
    • 2015-11-23
    • 2016-03-22
    • 1970-01-01
    • 2019-05-27
    • 1970-01-01
    • 1970-01-01
    • 2019-03-17
    相关资源
    最近更新 更多