.. _tutor/pagina/split_code: 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. .. raw:: html
Esempio con codice suddiviso
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))