1
def mention_notifier(self):
    print self.stat_old


if __name__ == "__main__":
    import sys
    self.stat_old = Set([])
    l = task.LoopingCall(mention_notifier).start(timeout)

これが私のコードの基本的なスケルトンです。stat_oldを、mentation_notifierを呼び出すたびに再初期化されないグローバル変数にしたいと思います。したがって、私はこのようなことをしました。しかし、「自己」のこのエラーは定義されていません。これについてどうやって行くのか手がかりはありますか?

4

1 に答える 1

2

Twistedは使用していませんが、ドキュメントを見ると、次のように機能する可能性があります。

def mention_notifier(self):
    print self.stat_old

class Namespace(object): 
    pass

if __name__ == "__main__":
    import sys
    self=Namespace()
    self.stat_old = Set([])
    l = task.LoopingCall(mention_notifier,self).start(timeout)

もちろん、ここでは変数名selfを別の名前に変更する必要があります。慣例により、self通常、クラス内でメソッド呼び出しでクラスのインスタンスを参照するために使用されます...

LoopingCall関数に渡す引数を指定できるようです(この場合、Namespaceオブジェクトがself渡されます)。次に、関数内で「自己」が変更されます(関数内のようなことをしない限りself=...、あなたは金色です-self.attribute=...完全に問題ありません)

于 2012-05-29T01:19:12.867 に答える