def get_face_database(self, cid): # print(cid) # course_sid = SC.query.filter(SC.c_id==cid).all() # all_sid = [] # for sc in course_sid: # all_sid.append(sc.s_id) # from_db_all_features = Faces.query.filter(Faces.s_id.in_(all_sid)).all() from_db_all_features = Faces.query.all() if from_db_all_features: for from_db_one_features in from_db_all_features: someone_feature_str = str(from_db_one_features.feature).split(',') self.name_known_list.append(from_db_one_features.s_id) features_someone_arr = [] for one_feature in someone_feature_str: if one_feature == '': features_someone_arr.append('0') else: features_someone_arr.append(float(one_feature)) self.features_known_list.append(features_someone_arr) # print("Faces in Database:", len(self.features_known_list)) return 1 else: # print('##### Warning #####', '\n') # print("'features' is empty") # print('##### End Warning #####') return 0 # 更新 FPS / Update FPS of video stream
时间: 2023-06-19 22:09:16 浏览: 51
这段代码中的函数get_face_database是用来从数据库中获取人脸特征信息的。首先,它查询指定课程下所有学生的ID,然后从数据库中获取这些学生的人脸特征信息。如果成功获取到特征信息,则将学生ID和特征信息分别存储在self.name_known_list和self.features_known_list中。最后,返回1表示成功获取到人脸特征信息,返回0表示未能获取到。在函数末尾,还有一行注释说明是用来更新视频流的帧率。
相关问题
class LinkQueue: #链队类 def __init__(self): #构造方法 self.front=None #队头指针 self.rear=None #队尾指针 def empty(self): #判断队是否为空 return self.front==None def push(self,e): #元素e进队 def pop(self): #出队操作 def gethead(self): #取队顶元素操作
好的,请看下面补全的代码:
```python
class LinkQueue: # 链队类
def __init__(self): # 构造方法
self.front = None # 队头指针
self.rear = None # 队尾指针
def empty(self): # 判断队是否为空
return self.front == None
def push(self, e): # 元素e进队
new_node = Node(e) # 创建新节点
if self.empty(): # 如果队列为空,则新节点既是队头也是队尾
self.front = new_node
self.rear = new_node
else:
self.rear.next = new_node # 将新节点链到队尾
self.rear = new_node # 更新队尾指针
def pop(self): # 出队操作
if self.empty(): # 如果队列为空,返回None
return None
node = self.front # 取出队头指针指向的节点
self.front = node.next # 更新队头指针
if self.front == None: # 如果删除的是最后一个节点,更新队尾指针
self.rear = None
return node.data # 返回出队节点的数据
def gethead(self): # 取队顶元素操作
if self.empty(): # 如果队列为空,返回None
return None
return self.front.data # 返回队头指针指向的节点的数据
```
以上是完整的 LinkQueue 类代码,包含了 push、pop、gethead 方法的实现。
class Phone: __current_voltage = 1 # __编程私有成员,当前手机运行电压 def __keep_single_core(self): # 私有方法 print("让CPU以单核模式运行") def clall_by_5g(self): # 公开的成员方法可以调用私有方法 if self.__current_voltage >= 1: print("5g通过已开启") else: self.__keep_single_core() print("电量不足,无法使用5g通话,并已设置为单核运行进行省电。") phone = Phone() phone.call_by_5g()
代码存在一个拼写错误,`clall_by_5g`应该为`call_by_5g`。另外,私有成员和私有方法的命名约定是以双下划线开头,而不是单下划线。以下是修正后的代码:
```python
class Phone:
__current_voltage = 1 # __编程私有成员,当前手机运行电压
def __keep_single_core(self): # 私有方法
print("让CPU以单核模式运行")
def call_by_5g(self): # 公开的成员方法可以调用私有方法
if self.__current_voltage >= 1:
print("5G通话已开启")
else:
self.__keep_single_core()
print("电量不足,无法使用5G通话,并已设置为单核运行进行省电。")
phone = Phone()
phone.call_by_5g()
```
执行以上修正后的代码,输出结果将是:
```
电量不足,无法使用5G通话,并已设置为单核运行进行省电。
```