首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >pyinotify已处理事件的返回值

pyinotify已处理事件的返回值
EN

Stack Overflow用户
提问于 2012-08-20 09:29:08
回答 1查看 539关注 0票数 1

我正在尝试从handled方法返回一个值。我是一个使用pyinotify的新手,代码是:

代码语言:javascript
复制
import pyinotify
import time


wm = pyinotify.WatchManager()
mask = pyinotify.IN_OPEN

class EventHandler(pyinotify.ProcessEvent):
    endGame = False
    def process_IN_OPEN(self, event):
        print "Opening:", event.pathname
        endGame = True

handler = EventHandler()
notifier = pyinotify.Notifier(wm, handler)

wdd = wm.add_watch('./file.json', mask, rec=True)
wm.rm_watch(wdd.values())

while not handler.endGame:
    time.sleep(1)

notifier.stop()
print "end game"

但是当我打开file.json时,endGame变量永远不会变成True。我做错了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-08-20 15:56:14

问题出在您的处理程序中。让我们看一下代码(我将向重要的行添加注释):

代码语言:javascript
复制
class EventHandler(pyinotify.ProcessEvent):
    endGame = False   # Here class attribute "endGame" is declared

    def process_IN_OPEN(self, event):
        print "Opening:", event.pathname
        endGame = True  # Here !local variable! is defined process_IN_OPEN

因此,您在process_IN_OPEN方法的作用域中定义了新变量。如果您想引用EventHandler实例属性,则需要添加self:

代码语言:javascript
复制
self.endGame = True
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12031354

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档