Suddividere il codice¶
Per scrivere pagine complesse è buona abitudine dividere il codice in sottochiamate in modo da facilitare leggibilità e manutenibilità.
Torniamo all’esempio del Multicolor Pane e cerchiamo di scrivere il codice in maniera più leggibile.
Nel main
viene come sempre creato il titolo e poi viene chiamata una funzione multicolorPane
che è definita più sotto.
La funzione riceve il numero dei pallini voluti e dei parameteri di posizionamento:
self.multicolorPane(root, howmany=96, width='400px',
margin_top='50px',margin='auto',
shadow='4px 4px 8px #666')
Sempre nel main
viene definito un contenitore che chiamiamo box nel quale mettiamo 6 multicolorPane:
box = root.div(margin='auto', margin_top='50px',width='460px')
for k in range(6) :
self.multicolorPane(box, howmany=24, width='200px',
display='inline-block',margin='4px')
Vediamo ora la definizione di multicolorPane che riceve i parametri pane
, howmany
e **box_kwargs
.
Viene costruito un contenitore definendo alcuni attributi fissi e ricevendone altri dal chiamante:
mybox=pane.div(padding='10px',
border='1px solid silver',rounded='10',
**box_kwargs)
Il contenitore viene poi popolato col numero desiderato di pallini:
for j in range(howmany):
mybox.div(height='15px', width='15px', shadow='2px 2px 3px #666',
background_color=self.randomColor(),
rounded='10', display='inline-block', margin='5px')
Si noti come per creare di volta in volta n colori a caso venga invocata la funzione randomColor:
return 'rgb(%i,%i,%i)'%(rn(0,255),rn(0,255),rn(0,255))