首页 > 解决方案 > 如何在 Python 中计算类变量?

问题描述

相机.py

class VideoCamera2(object):

    sample_num=0

    def __init__(self):
        self.webcam = cv2.VideoCapture(0)
        self.sample_num=sample_num
    
    def __del__(self):
        self.webcam.release()
    
    def get_frame(self):
        ret, frame = self.webcam.read()
        sample_num = self.sample_num + 1
        print(sample_num)
    
        if not ret:
            print("Could not read frame")
            exit()
            
        face, confidence = cv.detect_face(frame)
    
        try:
        ...
        except:
            ...

    ret,jpeg=cv2.imencode('.jpg',frame)
    return jpeg.tobytes()

如果要逐个添加sample_num,则sample_num始终为1。如何修复代码以将sample_num添加一个值?

标签: python

解决方案


class VideoCamera2(object):
    def __init__(self):
        # Initialize the instance variable sample_num as 0
        self.sample_num = 0

    def get_frame(self):
        # Add one to self.sample_num
        self.sample_num += 1


cam = VideoCamera2()
print(cam.sample_num)
# Output: 0

cam.get_frame()
print(cam.sample_num)
# Output: 1

cam.get_frame()
print(cam.sample_num)
# Output: 2

推荐阅读