2015-02-12 169 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) 
相關問題