这可能是一个基本问题,但我是编程新手。我正在使用第三方 python 代码,它提供了一个带有事件和事件委托的类。事件和事件委托的语法如下:
public Delegate Sub RequestEventDelegate (request As MDNPRequest, _
response as MDNPResponseParser)
public Event RequestEvent As MDNPRequest.RequestEventDelegate
我编写了以下代码来订阅该事件,但无法正常工作。我不知道我做错了什么。
Mreq = MDNPRequest()
Mreq.RequestEvent += Mreq.RequestEventDelegate(handleResponseEvent)
def handleResponseEvent (request, response):
print ' event fired'
我将两行代码添加到打开通信通道的函数的末尾。我还测试了将这两行代码添加到在通信通道上发送轮询的函数中。在第二种情况下,事件触发并且每次我执行轮询功能。这是否违背了事件订阅的目的?
我认为我的问题可能是由于不同的函数创建了同一类的实例。我想使用下面显示的大纲将一些函数合并到一个类中。Method1 创建了我希望 myClass 中的其他方法使用的 class1 的实例“a”。我尝试使用我设置为 class1 实例的类变量,但这不起作用。我使用类名引用类变量,例如来自 class1 的 myClass.variable.somemethod 但我得到“对象引用未设置为对象的实例”错误。使 myClass 中的所有方法都可以访问 a 的最佳方法是什么?最终我想从另一个模块调用 myClass 。
from file1 import *
myClass:
class_variable = class1() # class1 from file1
def __init__(self)
...
def Method1(self, argument list):
# this method instantiates a
...
a = class1()
def Method2 (self):
...
a.class1method1
...
def Method3 (self):
...
a.class1method2
...