クラスのメソッドを別のクラスから呼び出したい。私はこのようなことをしたいと思います。
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 の「データ」meth() が取得するものに応じて、「self.state」の値を変更するクラス B の handleCOMMAND を呼び出す必要があります。