Il modulo doctest cerca eventuali docstring in un file ed esegue alcun codice incorporato in esso, quindi sì, è possibile usare doctest per le classi.
Per quanto riguarda se sia meglio mettere i doctests nella docstring della classe o il costruttore, penso che dipende da cosa esattamente si sta documentare.
Se la docstring offre una panoramica generale della classe e come usarlo, allora penso che sia meglio mettere nella classe.
Se la docstring riguarda specificamente la modalità di creazione delle istanze della classe, è necessario passare al metodo __init__
.
Ricordate l'intento di doctests è in primo luogo di avere il codice esempio autolegittimantesi nella documentazione, in modo IMHO l'aspetto documentazione dovrebbe avere la priorità rispetto all'aspetto test.
Edit:
Nel tuo esempio sopra non esiste un codice per eseguire il doctest - in esecuzione python test.py -v
eseguirà il codice Python principale che solo definisce la classe.
È necessario aggiungere questo alla fine del file:
if __name__ == "__main__":
import doctest
doctest.testmod()
In alternativa, se si sta utilizzando Python 2.6 o versione successiva eseguirlo con:
python -m doctest -v test.py
fonte
2010-04-25 12:36:55
Come nota a margine, sempre ereditare da 'object' piuttosto che niente in modo che si sta utilizzando * nuovo classi di stile *. –
Tranne in python 3, dove ci sono solo classi di nuovo stile, e 'object' è implicito senza genitori dichiarati. – Daenyth