Programma rtrace.py

lwcs (1380 points)
4 15 26
asked Dec 28, 2020 in Programmare in Python by lwcs (1,380 points)
Buongiorno colleghi,

approfondendo la ricorsione ho iniziato ad usare il programma fornitoci dal prof. 'RTRACE' . Facendo un esercizio di ricorsione ed usando il programma non avviene la stampa grafica di tutte le entrate e uscite ma solo un entrata e un uscita con il relativo risultato.

se la funzione si chiama countf:

scrivo :  countf = rtrace.trace(countf)

             countf(argomento)

Nell esercizio si chiede solo di contare il numero di file dentro ogni sottocartella,quindi la funzione che prende in argomento un path,durante la ricorsione prende il path iniziale con il nome della directory se il nodo e' una directory e non un .txt ad esempio. Il problema e' risolto ma 'RTRACE' non mi stampa graficamente tutti i passaggi del programma. Cosa mi manca da tenere in considerazione?
130 views

1 Answer

Best answer
andrea.sterbini (172780 points)
513 935 1789
answered Dec 28, 2020 by andrea.sterbini (172,780 points)
selected Dec 28, 2020 by lwcs

Prova ad usare trace come decoratore

from rtrace import trace

@trace

def countf(path):

    ...

lwcs (1380 points)
4 15 26
commented Dec 28, 2020 by lwcs (1,380 points)
Salve Prof. ,

ho provato ora inserendo trace come decoratore nella finestra di sviluppo,ho salvato e inserito il programma nella shell. Nella shell ho avviato il programma con:

countf(path)

Se il procedimento e' esatto in questo modo non stampa neanche la grafica ridotta di trace con solo un entrata ed un uscita,ma solo il risultato.

Potrebbe essere che essendoci nel codice metodi importati dalla libreria 'os' i codici di rtrace in qualche modo non fanno bene il loro lavoro?
andrea.sterbini (172780 points)
513 935 1789
commented Dec 28, 2020 by andrea.sterbini (172,780 points)
devi usare

countf.trace(path)
lwcs (1380 points)
4 15 26
commented Dec 28, 2020 by lwcs (1,380 points)
Grazie mille prof. ! Ora funziona, in realta' avevo provato con countf.trace(path) pero' utilizzando sempre il procendimento definendo una variabile:

variabile = rtrace.trace(countf)

variabile.trace(path)

e non veniva,anzi restituiva un errore.

grazie prof.

Buonaserata