pycharm不显示对象的所有属性和方法

时间:2017-12-07 07:42:35

标签: python opencv

当我使用Python编写opencv时,我使用imread方法得到了图像对象,但是当我尝试使用该对象时,我看不到该方法的任何属性或方法。

喜欢这个 enter image description here

当我使用iPython或使用dir()方法进行检查时,我可以看到它 enter image description here

enter image description here

1 个答案:

答案 0 :(得分:3)

当PyCharm无法猜测方法返回的对象类型时会发生这种情况 - imread()在这种情况下。某些方法根据输入返回不同类型的对象。您必须查看opencv源代码,看看为什么它不清楚返回的类型是什么。代码的静态分析检测到明显的情况 IPython已经执行了该方法,因此它清楚了返回的是什么类型 如果您知道返回的类型,一种解决方案是使用类似的类型注释:

import cv2
import numpy
# I've checked with IPython that the returned object is a `numpy.ndarray` instance

img = cv2.imread('/home/me/Pictures/image.jpg')  # type: numpy.ndarray

然后,如果您输入img.,您会看到 enter image description here

PEP 0484上描述了这种特征 这个PEP说它是在Python 3.5中引入的。然而,可能是PyCharm可以在比3.5更旧的Python版本中处理这个简单的情况但是我还没有检查。
这个PEP描述了typing模块的功能,这在旧的Python版本中是不可用的,因此本文档中的大多数功能都不起作用,但我不确定PyCharm是否真的使用{{1用于解析类型注释的模块,或者本地执行它。