【发布时间】:2019-11-14 03:29:28
【问题描述】:
我在 pyCharm 中有一个“错误”的未解析引用。
我说“假”是因为引用实际上可以执行,我的代码工作正常,所以我认为更多的是 pyCharm 问题无法解析引用并将它们标记为红色。
由于我对 python 还很陌生,所以我想了解问题出在哪里。
基本上在我正在处理的代码中,有一个
from PyDAQmx import *
然后在我的代码中我使用了这个库的一些函数/方法/常量。
DAQmxCreateTask(...)
DAQmxStartTask(...)
PyCharm 将此引用标记为红色,并显示消息“未解析的引用 DAQmxCreateTask”
如果我这样做了
from PyDAQmx import DAQmxCreateTask, DAQmxStartTask
或者我愿意:
import PyDAQmx as PyDAQmx
PyDAQmx.DAQmxCreateTask(...)
然后未解决的参考消失了,所以我实际上有这两种方法来解决我的问题,但我想了解它为什么会发生。
我已经尝试过“使缓存无效并重新启动”的 pyCharm 选项,但没有成功。
据我了解,如果您执行from foo import *,那么 foo 中的所有函数都应该被解析和调用。
示例。
>> linspace(0,10,3)
Unresolved reference linspace
>> from numpy import *
>> linspace(0,10,3)
array([ 0., 5., 10.])
这意味着 numpy 有“一些东西”,允许 pycharm 在使用 * 导入时解析它的功能,但 PyDAQmx 缺少这个“东西”
有人可以指导我理解这个“东西”是什么以及如何解决它吗?
【问题讨论】:
-
虽然不太可能是导致问题的原因,但
from foo import *现在通常被认为是糟糕的编码风格。您应该明确导入您需要的对象/类。 -
虽然不太可能是导致问题的原因,但
from foo import *现在通常被认为是糟糕的编码风格。您应该明确导入您需要的对象/类。