为什么输入两个类的并集时PyCharm无法找到引用

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

PyCharm突出显示:“在'Foo | Bar'中找不到引用'object_var']

[class_var]没有亮点。代码运行正常,没有错误。

from typing import Union, Type


class Foo:
    class_var = "fo"

    def __init__(self):
        self.object_var = "o"


class Bar:
    class_var = "ba"

    def __init__(self):
        self.object_var = "r"


def foo_bar(file_object: Union[Type[Foo], Type[Bar]]):

    class_var = file_object.class_var
    object_var = file_object.object_var

    return class_var, object_var

code with highlighted part

python pycharm syntax-highlighting typing
1个回答
0
投票

[Type[Foo]描述了继承FooFoo本身的类定义,此声明与实例无关,请参见https://www.python.org/dev/peps/pep-0484/#the-type-of-class-objects

由于在两种情况下object_var都是实例变量,PyCharm会正确发出警告。

foo_bar的用途是什么?我想类型提示应该是file_object: Union[Foo, Bar]

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