问题描述
我在youtube的OpenCV课程中看到了这一点,但没有得到。 有人可以解释一下这是什么吗?有没有更简单的方法可以编写此部分?
import cv2
event = [i for i in dir(cv2) if 'EVENT' in i]
解决方法
那叫list comprehenstion
。类似于
import cv2
event = []
for i in dir(cv2):
if 'EVENT' in i:
event.append(i)
dir
用于从cv2
获取所有有效属性,然后,如果当前属性(i
)的名称上带有EVENT
,则将其存储在event
上。
下面的代码将显示['EVENT_1','EVENT_3']
。
class CV2:
EVENT_1 = 1
two = 2
def EVENT_3():
return 3
cv2 = CV2()
print([i for i in dir(cv2) if 'EVENT' in i])
,
dir
命令是Python(docs)中的内置命令,用于列出对象上的所有属性。
因此,此命令将遍历cv2中的所有属性,并过滤名称中带有“ EVENT”的属性。
为使表达更具表现力,我将列出您感兴趣的EVENT属性