これはおそらく基本的な質問ですが、プログラミングは初めてです。私はサードパーティの 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'
通信チャネルを開く関数の最後に 2 行のコードを追加しています。また、通信チャネルでポーリングを送信する関数に 2 行のコードを追加してテストしました。2 番目のシナリオでは、イベントが発生し、ポーリング関数を実行するたびに発生します。これはイベント サブスクリプションの目的に反しますか?
私の問題は、おそらく同じクラスのインスタンスを作成するさまざまな機能が原因だと思います。以下に示すアウトラインを使用して、一部の関数をクラスに統合したいと考えています。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
...