这可能是一个基本问题,但我是编程新手。我正在使用第三方 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
          ...