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

问题描述

我在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属性

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...