Ho appena letto "isinstance() considered harmful" e sembra ragionevole. In breve, argomenta per evitare l'uso di questa funzione.Ricorsione su un elenco di elenchi senza alcuna istanza()
Bene, proprio ora mi capita di scrivere un programma che prende input strutturati come un albero e ha bisogno delle informazioni sulla struttura dell'albero. Senza il tempo necessario per implementare una GUI, impongo all'utente di scriverlo in un file di configurazione (so che questa è un'interfaccia errata, ma la pianificazione è molto stretta). I miei utenti sono molto tecnici, ma non necessariamente conoscono Python. Ho scelto che il file conterrà elenchi di elenchi (di elenchi di elenchi ecc.) Che rappresentano gli alberi di input, con gli elementi finali che sono i nodi foglia degli alberi. Penso che sia molto meglio che imporre il synthax dei dizionari agli utenti.
ho intenzione di analizzare le liste in modo ricorsivo come il seguente (ommiting l'uso della struttura dell'albero, cerchiamo di semplificare e dire treatLeafNode() deve essere chiamata su ciascun nodo foglia):
def parseTree(input):
if isinstance (input, list):
for item in input:
parseTree(item)
else:
treatLeafNode(item)
Alla luce della articolo, mi chiedo se c'è un modo semplice per recurse su quello senza utilizzare isinstance() ...
Qualcuno ne sa uno?
++, un buon consiglio –