2015-02-12 171 views
0

在另一个模块中的另一个类(bar)中,是否可以从类(foo)的实例访问类方法? 我知道这段代码是错误的,不起作用。但是我希望你看到我想要做的事情。还是有更好的方法来做到这一点?而在另一个模块。当我在另一个类中时,如何从一个实例访问类方法?

file1.py

from file2 import instance_of_bar 

class Foo(object): 

    def kill_bar(self): 
     instance_of_bar.kill() 

    def baz(self): 
     self.kill_bar() 


class Bar(object): 

    def kill(self): 
     print "I'm dead!" 

file2.py

from file1 import * 

instance_of_bar = Bar() 
instance_of_foo = Foo() 
instance_of_foo.baz() 

感谢您的帮助!

回答

0

我建议你将实例传递给有问题的方法。你的示例代码修改后的版本看起来是这样的:

文件1:

class Foo(object): 

    def kill_bar(self, bar): 
     bar.kill() 

class Bar(object): 

    def kill(self): 
     print "I'm dead!" 

文件2

from file1 import * 

instance_of_bar = Bar() 
instance_of_foo = Foo() 
instance_of_foo.kill_bar(instance_of_bar) 
相关问题