我对下面的代码做了一些更改,基本上您需要记住:在创建对象方法时使用self关键字。在
您需要将data值作为方法参数传递,或者以某种方式分配它(见下文)。在
下面是一个如何将数据类传递到类的示例:class CallbackA(object):
def transmit(self,data): # See note 1
do_stuff_with(data) # See note 1
class CallbackB(object):
def doRead(self,data): # see note 1
self.point_to_A.transmit(data) # see note 2
class bigClass(object):
def __init__(self):
self.A = CallbackA()
self.B = CallbackB()
self.B.point_to_A = self.A
上面的代码可能无法一字不差地工作,但它是一个示例,说明了如何按照您描述的方式将数据传递给另一个类。你应该能够从这个例子中得到你的工作。在
当它被调用时:
^{pr2}$
注意1:您需要以某种方式声明data。或者将其作为方法参数传递,如我所示,或者需要将其声明为属性:class CallbackA(object):
def transmit(self,data):
do_stuff_with(self.data)
class CallbackB(object):
def __init__(self,data):
self.data = data
def doRead(self):
self.point_to_A.transmit(self.data)
或者class CallbackA(object):
def transmit(self,data):
do_stuff_with(self.data)
class ClassB(object):
def set_data(self,data):
self.data = data
def doRead(self):
self.point_to_A.transmit(self.data)
注意2:您需要将方法调用为:method(class_instance, args)或{}
编辑
作为我们在评论中讨论的附加内容。point_to_A的显式声明class ClassB(object):
def __init__(self,A):
self.point_to_A = A
def set_data(self,data):
self.data = data
def doRead(self):
self.point_to_A.transmit(self.data)