Sono molto nuovo in Python. Stavo cercando di passare il valore da un metodo all'altro all'interno della classe. Ho cercato il problema ma non ho potuto ottenere una soluzione adeguata. Perché nel mio codice, "if" sta chiamando il metodo della classe "on_any_event" che in cambio dovrebbe chiamare il mio altro metodo "dropbox_fn", che usa il valore di "on_any_event". Funzionerà, se il metodo "dropbox_fn" è al di fuori della classe?Chiamare un metodo da un altro all'interno della stessa classe in Python
Illustrerò con il codice.
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()
Il problema principale qui è .. non riesco a chiamare il metodo "on_any_event" senza parametro dell'evento. Quindi, piuttosto che restituire valore, chiamare "dropbox_fn" all'interno di "on_any_event" sarebbe un modo migliore. Qualcuno può aiutare con questo?
Così nella "dropbox_fn", posso usare il "nome del file" direttamente piuttosto che "self.name = filename" ????? – kirti
@kirti, Hai ragione. – falsetru
ok ha funzionato !!. "dropbox_fn" ha ottenuto con successo il nome del file da "on_any_event". – kirti