首页 > 解决方案 > 键入提示 PyCharm 自身内部使用的类

问题描述

我如何在其自身中正确键入一个类?在 PyCharm 中,我目前收到此错误:

在此处输入图像描述

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

在此处输入图像描述

因此,我相信只有在其自己的类中提供类型提示时才会出现错误。所以我不知道究竟要做什么来防止这个错误,或者我是否使用了错误的类型,并且不应该在其自身中使用类型。

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

标签: python-3.xpycharmtype-hinting

解决方案


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

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/对此进行了改进。


推荐阅读