On Thu, 15 Jul 2010 12:11:47 +0200, Nicola Zanella <ing.za...@gmail.com>
wrote:
> Ciao a tutti, scrivo perchè uso molto spesso il metodo setdefault dei
> dict,
> però anche googlando non sono riuscito a capire
> perchè quando come value si mette il valore di ritorno di una funzione,
> essa
> venga rieseguita ogni volta.
> 
> Esempio:
> 
>>>> a = {}
>>>> a
> {}
>>>> def fun1():
> ...     print 'passed'
> ...     return 3
> ...
>>>> a.setdefault(1, fun1())
> passed
> 3
>>>> a.setdefault(1, fun1())
> passed
> 3
>>>> a.setdefault(1, fun1())
> passed
> 3
> 
> 
> Qualcuno lo sa?

La stai eseguendo tu "a mano" scrivendo "fun1()", con le parentesi.

Prova a.setdefault(1, fun1)

Ciao!

-- 
Daniele Varrazzo - Develer S.r.l. 
http://www.develer.com
_______________________________________________
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python

Rispondere a