Please ignore secret bonuses. Secret tests do NOT award bonus. Max hw grade is 30+2 bonus efficiency

Do you need help?

Programma rtrace.py

lwcs (1380 points)
6 16 26
in Programmare in Python by (1.4k 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?
262 views
closed

1 Answer

Best answer
andrea.sterbini (207920 points)
750 1267 2373
by (208k points)
selected by

Prova ad usare trace come decoratore

from rtrace import trace

@trace

def countf(path):

    ...

lwcs (1380 points)
6 16 26
by (1.4k 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 (207920 points)
750 1267 2373
by (208k points)
devi usare

countf.trace(path)
lwcs (1380 points)
6 16 26
by (1.4k 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