如何将类的实例传递到其构造函数中的属性中,并使这些属性访问已初始化的属性?

时间:2019-11-21 22:57:07

标签: python class inheritance

说我在python foo,bar和baz中有3个类,如下所示:

class Foo(object):
    a=9
    def __init__(self):
        self.bar= Bar(Foo)
        self.baz = Baz(Foo)

class Bar(object):
    def __init__(self,Foo):
        self.a = Foo.a

    def f(self,b):
        return self.a*b

class Baz(object):
    def __init__(self,Foo):
        self.b = Foo.bar.f(8)
        print(self.b)

k=Foo()

这样做会引发错误:

  

AttributeError:类型对象'foo'没有属性'bar'

不确定如何继续进行操作,因为我想将该类本身的实例传递到其他类的构造函数中,并使那些实例属性可由构造函数中的其他人员访问。我环顾四周,但不幸的是,在python范围内

1 个答案:

答案 0 :(得分:0)

您想将self(正在初始化的Foo实例)传递给BarBaz,而不是类Foo本身。

class Foo(object):
    a=9
    def __init__(self):
        self.bar = Bar(self)
        self.baz = Baz(self)

如果正确,那么运行代码应产生输出72