【发布时间】:2019-09-17 16:09:14
【问题描述】:
我有一堆执行功能的类,但是通过类型提示,我现在想让它显示该类的一个实例,或者该类的实例列表。
class Foo:
pass
class Bar:
pass
class Win:
pass
然后我开始看到 Typings,并且正在做以下事情:
get_all_foos() -> list:
return []
这是有道理的,但我希望它更冗长。类似于:
get_all_foos() -> list<Foo>:
return []
我在网上查找,似乎我可能需要使用 LIST 类型,而不是基本 list。
from typing import List
get_all_foo() -> List[Foo]:
pass
虽然我认为我没有遇到任何错误,但我想确保这是按照 Python 标准做事的正确方法,或者是否适合这样做:
get_all_foo() -> list[Foo]:
pass
【问题讨论】:
-
参见 mypy 的 the official documentation。
-
查看它时,没有明确的 Iterables 文档,尽管当 ctrl+f 时,我确实得到了对:
List[str]的引用,这让我认为List[Foo]是可以接受的,尽管返回类型 ISNT 一个 List,而是一个 list 作为 Typing 不能被实例化。所以 List 不是数据结构,而是纯粹的 Typing。 -
Tuples有一个例子,Lists也有同样的概念
标签: python-3.x