我想从另一个类调用一个类的方法。我想做这样的事情。
class A:
def meth(self):
B.meth1()
class B:
def meth1(self):
pass
a = A()
a.meth()
我收到以下错误:
TypeError: unbound method meth1() must be called with B instance as first argument (got nothing instead)
我究竟做错了什么?
更新:
上面的例子可能有点模糊。这就是我真正打算做的事情:
class A:
def meth(self, data):
if data[0] == '/':
B.handleCOMMAND(data)
class B:
def handleCOMMAND(self, data):
"""
Some code to handle some command.
"""
更新 2:
class A:
def meth(self, data):
if data[0] == '/':
B.handleCOMMAND(data)
class B:
def __init__(self):
self.state = 'CHAT'
def handleCOMMAND(self, data):
if data.strip().split()[1] == 'send':
self.state == 'RECV-FILE'
我面临的主要问题是:
'self.state' 是 B 类中的一个实例变量。根据 A 类的 'data' meth() 获取的内容,需要调用 B 类的 handleCOMMAND,这应该会改变 'self.state' 的值