Python 为类digicode系统实现队列

Python 为类digicode系统实现队列,python,python-2.7,queue,pyside,Python,Python 2.7,Queue,Pyside,我有一个带有QPushButtons的系统,它的工作方式就像一个数码门。每个按钮都有一个ID(整数)。当您按下的最后一个按钮对应于给定的密码时,事情就会发生(比如门被打开) 我正在考虑使用一个队列来实现这一点,并使用指向最后添加值的指针。但是如何测试密码是否正确 以下是我所掌握的代码: class MyQueue(): def __init__(self, size, defaultValue=None): self.size = size self.co

我有一个带有
QPushButtons
的系统,它的工作方式就像一个数码门。每个按钮都有一个ID(整数)。当您按下的最后一个按钮对应于给定的密码时,事情就会发生(比如门被打开)

我正在考虑使用一个队列来实现这一点,并使用指向最后添加值的指针。但是如何测试密码是否正确

以下是我所掌握的代码:

class MyQueue():
    def __init__(self, size, defaultValue=None):
        self.size = size
        self.content = [defaultValue]*size
        self.end = self.size-1
    def addItem(self, value):
        self.end = (self.end+1)%self.size
        self.content[self.end] = value
    def checkCorrect(self, password):
        pass #???

我可以填充队列,
size
是保存的项目数。但是我不知道如何检查密码是否正确。

关键是从最后添加的值开始,向后读取密码。检查密码中的每个字符/数字是否正确。如果你能把密码读到最后,你就很好了。以下是我的建议:

    def checkCorrect(self, password):
        pw = list(reversed(password))
        i = 0
        j = self.end
        if len(pw) > self.size:
            return False
        while True:
            if pw[i] <> self.content[j]:
                return False
            else:
                i += 1
                j = (j-1)%self.size
                if i == len(pw):
                    return True
def checkCorrect(self,password):
pw=列表(反向(密码))
i=0
j=自我结束
如果len(pw)>自身尺寸:
返回错误
尽管如此:
如果pw[i]自身内容[j]:
返回错误
其他:
i+=1
j=(j-1)%self.size
如果i==len(pw):
返回真值