[Python] come passare un dizionario come argomento ad uno script python

Daniele Varrazzo piro a develer.com
Lun 16 Mar 2009 13:19:59 CET


On Mon, 16 Mar 2009 12:30:32 +0100, Gian Mario Tagliaretti
<gianmt a gnome.org> wrote:
> 2009/3/16 Daniele Varrazzo <piro a develer.com>:
> 
> ciao Daniele,
> 
>> mi fai un favore? provi a lanciare
>>
>> test1.py "__import__('shutil').rmtree('~')"
> 
> mm preferirei di no, tu che dici?
> 
>> ciao ai tuoi file!
> 
> Bisogna sempre prendere le cose senza esagerare, i contesti dove
> l'applicazione gira possono essere tendenti all'infinito.
> 
> Analizzando la domanda in oggetto direi che il software in oggetto non
> girerà nè in un server di produzione nè sarà dedicato ad un ampia
> platea di utilizzatori.

Il problema è che in informatica non si conosce mai il tempo di vita di un
oggetto: magari pensi che sia un throw-away, poi lo presenti al capo, a lui
piace, lo fa girare più di quanto ti aspettavi, poi un suo amico lo vede,
il tuo capo gli dice che è solido come una roccia, allora lui lo prova...
Ci sono applicazioni nate per scherzo e diventate titaniche (Flickr per
esempio). Un'applicazione estremamente diffusa in abito di retail
automobilistico in Italia gira solo se l'utente e il database si chamano
"alex", e viene sempre installata come tale!

> Passare un dizionario (da analizzare/utilizzare) ad una linea di
> comando è comunque una progettazione del software che non sta in piedi
> in un contesto produttivo, quindi mi auguro che qui si stia trattando
> di uno script per giocare.

Se sta giocando quello script, lo sta facendo per imparare qualcosa
(analizzando la domanda, questo è quello che ho capito io). Una lezione
importante da imparare prima possibile è che non bisogna mai fidarsi
dell'input. È meglio impararla prima, da un consiglio, che dopo, da
un'esperienza.

Secondo me non bisognerebbe mai scrivere codice con due mentalità, una di
"brutta copia" e una di "bella copia", per diversi motivi: per permettere
di copiare e incollare snippet tra oggetti che metteresti nel primo gruppo
e quelli del secondo, perché non si capisce mai quando un tuo programma
passa dal primo al secondo gruppo. Ma soprattutto per acquisire una forma
mentale. Ovviamente questo non vuol dire generalizzare all'infinito, anche
quello è un male. Ma bisogna imparare a riconoscere che c'è qualcosa di
profondamente sbagliato in idiomi tipo "eval(stdin.read())", capire perché
e non usarli neanche per scherzo.

-- 
Daniele Varrazzo - Develer S.r.l. 
http://www.develer.com


Maggiori informazioni sulla lista Python