我对python非常陌生。我试图在课堂上将一种方法的价值传递给另一种方法。我搜索了这个问题,但我无法得到适当的解决方案。因为在我的代码中,“if”正在调用类的方法“on_any_event”,作为回报,应该调用另一个方法“dropbox_fn”,它使用“on_any_event”中的值。如果“dropbox_fn”方法在类之外,它会起作用吗?从Python中的同一类中调用另一种方法
我会用代码来说明。
class MyHandler(FileSystemEventHandler):
def on_any_event(self, event):
srcpath=event.src_path
print (srcpath, 'has been ',event.event_type)
print (datetime.datetime.now())
#print srcpath.split(' ', 12);
filename=srcpath[12:]
return filename # I tried to call the method. showed error like not callable
def dropbox_fn(self)# Or will it work if this methos is outside the class ?
#this method uses "filename"
if __name__ == "__main__":
path = sys.argv[1] if len(sys.argv) > 1 else '.'
print ("entry")
event_handler = MyHandler()
observer = Observer()
observer.schedule(event_handler, path, recursive=True)
observer.start()
try:
while True:
time.sleep(1)
except KeyboardInterrupt:
observer.stop()
observer.join()
这里的主要问题是..我不能调用没有事件参数的“on_any_event”方法。因此,而不是返回值,在“on_any_event”内调用“dropbox_fn”将是更好的方法。有人可以帮忙吗?
所以在“dropbox_fn”,我可以使用“文件名”,而不是直接“self.name =文件名” ????? – kirti 2014-09-13 17:37:20
@kirti,你说得对。 – falsetru 2014-09-13 17:39:30
确定它工作!!“dropbox_fn”成功从“on_any_event”获得了文件名。 – kirti 2014-09-13 17:43:25