Python 2.7 在init之后传递继承类的实例(Python 2.7)

Python 2.7 在init之后传递继承类的实例(Python 2.7),python-2.7,class,inheritance,multiple-inheritance,init,Python 2.7,Class,Inheritance,Multiple Inheritance,Init,在类b被类c继承并调用类a的实例后,我试图访问另一类a中类b的对象(self.variable)。我不知道如何访问在继承初始化期间创建的类b的实例。此外,a需要从类k继承 如果我可以访问class a中的self.variable,并进一步传递它,而无需显式引用class b的实例(即,只需使用self.variable调用它,而不是b.variable)在不改变已分配给c类变量的值的情况下(因此无需重新初始化) 我很感谢你的帮助,我已经做了好几个小时了 class k(object):

类b
类c
继承并调用
类a
的实例后,我试图访问另一
类a
类b
的对象(self.variable)。我不知道如何访问在继承初始化期间创建的
类b
的实例。此外,a需要从
类k
继承

如果我可以访问
class a
中的
self.variable
,并进一步传递它,而无需显式引用
class b
的实例(即,只需使用
self.variable
调用它,而不是
b.variable
)在不改变已分配给c类变量的值的情况下(因此无需重新初始化)

我很感谢你的帮助,我已经做了好几个小时了

class k(object):
    def __init__(self):
        pass

class b(object):
    def __init__(self):
        self.variable = 1

class c(b):
    def __init__(self):
        b.__init__(self)# b is inherited from & initialized
        # alternative for inheritance
        #super(c,self).__init__()
        print("init(): " + str(self.variable))
    def run(self):
        self.variable = 2
        print("run(): " + str(self.variable))
        a()# here I need to pass the instance of b

class a(k):
    def __init__(self):
        k.__init__(self)# a() needs to inherit from k()
        # ERROR: cannot access variables of b()
        print("a(): " + str(self.variable))


if __name__ == "__main__":
    c().run()

我想我知道怎么做了。 如果传递实例就足够了,这将起作用:

class k(object):
    def __init__(self):
        pass

class b(object):
    def __init__(self):
        self.bb = self.bb()
    class bb:
        def __init__(self):
            self.variable = 1

class c(b):
    def __init__(self):
        b.__init__(self)# b is inherited from & initialized
        # alternative for inheritance
        #super(c,self).__init__()
        print("init(): " + str(self.bb.variable))
    def run(self):
        self.bb.variable = 99
        print("run(): " + str(self.bb.variable))
        a(self)# pass instance of b

class a(k):
    def __init__(self, bInstance):
        k.__init__(self)# a() needs to inherit from k()
        print("a(): " + str(bInstance.bb.variable))




if __name__ == "__main__":
    c().run()
据我所知,如果我想通过self到达那里,我需要
class a
class c
继承,而
class c
继承并初始化
class b
,最后的调用就是
a()
(这就是我需要它做的,因为a继承了我需要的一切):


a类
不了解
b类
c类
,因此无法访问其属性。当您使用Python2时,
类k
应该继承自
对象
,或者是一个老式类。是的,我知道。我不知道如何获得
a
的知识,我无法访问k类(但好吧,在这个例子中,我可以更改它,稍后再考虑其含义),有人能告诉我我在帖子中做错了什么吗?我真的试着把它做好,然后我得到了否决票。
class k(object):
    def __init__(self):
        pass

class b(object):
    def __init__(self):
        self.bb = self.bb()
    class bb:
        def __init__(self):
            self.variable = 1

class c(b):
    def __init__(self):
        b.__init__(self)# b is inherited from & initialized
        # alternative for inheritance
        #super(c,self).__init__()
        print("init(): " + str(self.bb.variable))
    def run(self):
        self.bb.variable = 99
        print("run(): " + str(self.bb.variable))


class a(k,c):
    def __init__(self):
        k.__init__(self)# a() needs to inherit from k()
        c.__init__(self)
        print("a(): " + str(self.bb.variable))

        self.run()
        print("a() #2: " + str(self.bb.variable))



if __name__ == "__main__":
    a()