而在另一个模块。当我在另一个类中时,如何从一个实例访问类方法?
问题描述:
在另一个模块中的另一个类(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()
感谢您的帮助!
答
我建议你将实例传递给有问题的方法。你的示例代码修改后的版本看起来是这样的:
文件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)