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
带有突出显示部分的代码
Type[Foo]
描述了继承Foo
或Foo
本身的类定义,此声明与实例无关,请参阅https://www.python.org/dev/peps/pep-0484/#the-类对象的类型。
由于object_var
在这两种情况下都是实例变量,PyCharm正确地引发了警告。
foo_bar
有什么用途?我想类型提示应该是file_object: Union[Foo, Bar]
。