Python 3.x PyCharm抱怨通过另一个模块注入的变量引用未解析
我有以下文件:Python 3.x PyCharm抱怨通过另一个模块注入的变量引用未解析,python-3.x,pycharm,python-import,Python 3.x,Pycharm,Python Import,我有以下文件: # b.py from .a import A class B(A): ... 上述三个文件位于名为p的包中 一切正常,除了模块a中,PyCharm警告B是未解析的引用 问题: 有没有办法帮助PyCharm了解发生了什么并避免警告 如果有帮助,我可以重写导入语句,但希望将A和B类保留在单独的模块中。您可以定义B: # a.py def B(): assert False, "this needs to be overridden" class A:
# b.py
from .a import A
class B(A):
...
上述三个文件位于名为p
的包中
一切正常,除了模块a
中,PyCharm警告B
是未解析的引用
问题:
有没有办法帮助PyCharm了解发生了什么并避免警告
如果有帮助,我可以重写导入语句,但希望将A
和B
类保留在单独的模块中。您可以定义B:
# a.py
def B():
assert False, "this needs to be overridden"
class A:
def m(self):
return B()
您还可以告诉pycharm忽略未解析的引用:
# a.py
class A:
def m(self):
# noinspection PyUnresolvedReferences
return B()
我找到了另一种方法来缓解这个问题。将以下伪导入添加到
a.py
的末尾:
if __name__ == '__main__':
from .b import B
这样PyCharm就不再抱怨,甚至可以对B及其方法进行检查
当然,导入实际上在运行时没有完成,因为
a.py
是。将B
设置为None
会导致另一个关于B
不可调用的警告。但是我不知道noinspection
指令,谢谢!
# a.py
class A:
def m(self):
# noinspection PyUnresolvedReferences
return B()
if __name__ == '__main__':
from .b import B