为自身使用的 class 输入提示 PyCharm

Typing hints PyCharm for a class used within itself

如何在其内部正确键入 class?在 PyCharm 中,我目前收到此错误:

这是一个未解决的引用错误。这通常是有道理的,因为我不希望 PyCharm 完美支持类型。但是,当我在 Item class 本身之外的其他 classes 中使用它时,没有错误:

因此,我认为只有在其自身 class 中提供类型提示时才会出现该错误。所以我不知道该怎么做才能防止这个错误,或者如果我使用的类型通常是错误的,并且一个类型不应该在其内部使用。

基本上我试图模仿的行为是你有一个项目的制作配方,并且可以使用配方函数创建该项目的新实例。

当使用 class 作为 class 中的类型时,或者在该类型尚未完全定义的任何地方,您需要在注释中用单引号或双引号括起该类型:

class Item:
    ...
    def craft(self, substrates: List['Item'], amount: int) -> List['Item']:
        ...

来源:

https://www.python.org/dev/peps/pep-0484/#forward-references

https://blog.jetbrains.com/pycharm/2015/11/python-3-5-type-hinting-in-pycharm-5/
(基于字符串的提示)

编辑:PEP 563:https://www.python.org/dev/peps/pep-0563/对此进行了改进。