获取名称错误:在Python中使用Twisted时未定义name Self。如何删除此错误?

2024-05-13 03:24:07 发布

您现在位置:Python中文网/ 问答频道 /正文

def mention_notifier(self):
    print self.stat_old


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

这是我代码的基本框架。我不想每次都给你一个全局变量。因此,我做了这样的事。但有一个“自我”没有定义的错误。有什么线索吗?在


Tags: nameimportselftaskifmaindefsys
1条回答
网友
1楼 · 发布于 2024-05-13 03:24:07

我不使用Twisted,但是从docs来看,类似这样的方法可能有用:

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可以被赋予传递给函数的参数(在本例中,名称空间对象{}被传递)。然后在函数内部,“self”被修改(只要你不在函数内做self=...之类的事情,你就是金的self.attribute=...完全可以)

相关问题 更多 >