键入提示 PyCharm 在其内部使用的类[重复]

问题描述 投票:0回答:1

如何正确地在其内部键入一个类?在 PyCharm 中,我当前收到此错误:

enter image description here

这是一个未解决的参考错误。这通常是有道理的,因为我不希望 PyCharm 完美支持类型。但是,当我在

Item
类本身之外的其他类中使用它时,没有错误:

enter image description here

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

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

python pycharm python-typing
1个回答
4
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.