Diciamo che ho un'istruzione non-così-intuitiva if
nel mio codice, ma solo se sei nuovo alla base di codice:
def set_markets(markets=None):
"""
Will accept 'all' as markets to set all markets on.
For individual markets, pass in a list of ints.
"""
if markets:
if type(markets) == list:
markets = ','.join(map(str, markets))
self._set_markets(markets)
Per quelli di voi che si chiedono:
Il sistema esistente con cui sto interagendo (un database) si aspetta un elenco di numeri interi dall'interfaccia front-end. Questo codice lo fa dal back-end, quindi è stata scelta una lista di ints poiché rappresenta al meglio ciò che un utente potrebbe nutrire altrimenti.
La roba markets
viene tramandata da un'altra classe, quindi anche se sembra che si svolga su 5 righe, è più simile a ~ 50 linee.
La mia domanda è, lo considereresti più leggibile? Perché o perché no?
def set_markets(markets=None):
"""
Will accept 'all' as markets to set all markets on.
For individual markets, pass in a list of ints.
"""
if markets:
if type(markets) == list:
markets = ','.join(map(str, markets))
# else:
# markets are set to "all"
self._set_markets(markets)
EDIT:
Questo codice sembra peggiore di quello che è perché ho omesso un dettaglio: se None
è alimentato per markets
(il parametro predefinito), quindi non modificherà le impostazioni dei mercati del database.
Ecco cosa ho ora:
if markets is not None:
if isinstance(markets, list):
markets = ','.join(map(str, markets))
else:
markets = 'all'
self._set_new_header_markets(markets)