<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=iso-8859-1"><meta name=Generator content="Microsoft Word 14 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";
        mso-fareast-language:EN-US;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.StileMessaggioDiPostaElettronica17
        {mso-style-type:personal-compose;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri","sans-serif";
        mso-fareast-language:EN-US;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:70.85pt 2.0cm 2.0cm 2.0cm;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=IT link=blue vlink=purple><div class=WordSection1><p class=MsoNormal>Ciao,<o:p></o:p></p><p class=MsoNormal>Solo per conlcudere il discorso iniziato ieri sulle variabili globali.<o:p></o:p></p><p class=MsoNormal>Posto che Pyreadline non si può usare con lo screen reader, alla fine l’ho disinstallato, altrimenti avrei rischiato il ricovero in qualche manicomio, ammesso che ve ne siano ancora… <o:p></o:p></p><p class=MsoNormal>Dunque, nell’ambiente Ipython si possono creare delle macro che eseguono le linee specificate dalla riga di comando:<o:p></o:p></p><p class=MsoNormal>%macro “NOMEMACRO” 1-4<o:p></o:p></p><p class=MsoNormal>Il ragazzo, usando le Magic Function, crea una variabile globale di tipo Ipython.core.macro.Macro, che installa, appunto nel dizionario delle variabili globali.<o:p></o:p></p><p class=MsoNormal>Se, infatti, scrivo <o:p></o:p></p><p class=MsoNormal>Globals()<o:p></o:p></p><p class=MsoNormal>Scopro che lì dentro c’è la variabile ‘NOMEMACRO’ che ho creato in precedenza.<o:p></o:p></p><p class=MsoNormal>Percui mi sono chiesto: sì, ok, ma come diavolo fai?<o:p></o:p></p><p class=MsoNormal>Allora mi sono andato a leggere un po’ di codice… e il manicomio di prima si è riafacciato prepotente alla mia dimora… <o:p></o:p></p><p class=MsoNormal>Una delle mie lacune, che sicuramente dovrò colmare, riguarda l’uso dei decorators… Ok, ok, non li conoscevo, ma anche adesso mi sa tanto che devo studiare… Cosa diavolo sono? Che fanno? <o:p></o:p></p><p class=MsoNormal>Comunque, quello che ho capito è che quando Ipython parte crea una shell e dei NameSpaces… ed è lì che mette le sue variabili, che possono essere utilizzate come variabili globali…<o:p></o:p></p><p class=MsoNormal>In ogni modo, se lo fa Ipython, allora dovrò riuscirci pure io… indiscutibilmente!<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p></div></body></html>