在python 3.6中使用super()函数

时间:2018-04-08 18:40:34

标签: python super

当我尝试:

class A:
    def __init__(self):
        self.flag = False

    def check_flag(self):
        if self.flag: return True
        else: return False

    def create(self):
        b = B()
        b.foobar()

class B(A):
    def __init__(self):
        self.foo = 0

    def foobar(self):
        while super().check_flag() == False:
         `print("Works"`)


if __name__ == "__main__":
    a = A()
    a.create()

我收到错误: AttributeError:'B'对象没有属性'flag'

我基本上希望对象B从其特定的父对象A调用一个函数。我在这里做错了什么?

编辑:我应该指定,父对象的标志可能被不同的函数更改,因此子对象需要不断检查该标志的状态。我可能会尝试使用线程,但我确信使用super()有一种更简单的方法。

0 个答案:

没有答案