还有另一种编写此代码的方法吗?这似乎很难理解

时间:2020-08-15 13:30:34

标签: python opencv for-loop cv2

我在youtube的OpenCV课程中看到了这一点,但没有得到。 有人可以解释一下这是什么吗?有没有更简单的方法可以编写此部分?

import cv2
event = [i for i in dir(cv2) if 'EVENT' in i] 

2 个答案:

答案 0 :(得分:4)

那叫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])

答案 1 :(得分:1)

dir命令是Python(docs)中的内置命令,用于列出对象上的所有属性。

因此,此命令将遍历cv2中的所有属性,并过滤名称中带有“ EVENT”的属性。

为使表达更具表现力,我将列出您感兴趣的EVENT属性

相关问题