Quale soluzione per il mio piccolo problema considereresti uno stile migliore? C'è un'altra opzione migliore che mi manca?
La logica è semplice: elaborare i dati da un'origine fino a ottenere il token END
.
Ho un paio di idee imperfette:
line = read_from_source()
while line != "END":
process(line)
line = read_from_source()
In realtà sto chiamando read_from_source()
due volte quando la descrizione del linguaggio naturale del problema la chiama una volta. Potenziale bug di manutenzione quando qualcuno cambia un posto e dimentica l'altro.
while True:
line = read_from_source()
if line == "EOF": break
process(line)
In qualche modo non mi piace perché la condizione del ciclo non si distingue chiaramente dal codice quando lo si guarda.
while line = read_from_source() != "END":
process(line)
Conciso, ma trovo difficile fare raed quando gli operatori di assegnazione e uguaglianza si trovano sulla stessa linea.