2012-11-29 138 views
1

我正在研究精细的文件切换器(缺少更好的术语),并且遇到问题。简体,考虑下面的代码:Python:当从另一个类中调用初始方法时调用其他类方法的类方法

class Foo(object): 
    def __init__(self): 
     self.foo = Bar() 
     self.foo.baz() 

class Bar(object): 
    def baz(self): 
     print("baz") 
     self.qux() 
    def qux(self): 
     print("qux") 

当类Foo启动,并呼吁“self.foo.baz()”,没有打印输出任何责任。怎么来的?在这种情况下,有没有办法在Foo中正确调用Bar类中的方法?

+2

它适合我。请注意'__init__'在您实例化类之前不会执行。它不初始化类,它初始化一个实例。 – BrenBarn

+0

我无法复制。当我调用'Foo()'时,打印出“baz”和“qux”。 – perimosocordiae

+1

上面的代码加上'Foo()'打印'baz'和'qux'。那里没有问题。 –

回答

2

__init__在创建实例之前不会被调用。如果你创建一个实例:

a = Foo() 

然后你应该看到打印的东西。

+0

我现在厌倦了自己,忘了创建一个实例...谢谢你的提醒。 – Gipphe

相关问题