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-type-of-class-objects。
由于在两种情况下object_var
都是实例变量,PyCharm会正确发出警告。
foo_bar
的用途是什么?我想类型提示应该是file_object: Union[Foo, Bar]
。