Jestem bardzo nowy dla Pythona. Próbowałem przekazać wartość z jednej metody do drugiej w klasie. Szukałem informacji o problemie, ale nie mogłem uzyskać odpowiedniego rozwiązania. Ponieważ w moim kodzie "if" wywołuje metodę klasy "on_any_event", która w zamian powinna wywołać moją inną metodę "dropbox_fn", która wykorzystuje wartość z "on_any_event". Czy to działa, jeśli metoda "dropbox_fn" znajduje się poza klasą?Wywołanie jednej metody z innej w tej samej klasie w Pythonie
Będę ilustrować za pomocą kodu.
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()
Głównym problemem tutaj jest .. Nie mogę wywołać metody "on_any_event" bez parametru zdarzenia. Więc zamiast zwracać wartość, lepszym rozwiązaniem byłoby wywoływanie "dropbox_fn" w "on_any_event". Czy ktoś może w tym pomóc?
Więc w „dropbox_fn”, mogę użyć „nazwa_pliku” bezpośrednio zamiast „self.name = nazwa pliku” ????? – kirti
@kirti, masz rację. – falsetru
OK zadziałało !!. "dropbox_fn" pomyślnie uzyskał nazwę pliku od "on_any_event". – kirti