Persistent variables in python

Gabriel Genellina gagsl-py at yahoo.com.ar
Wed Dec 27 18:57:38 EST 2006


At Tuesday 26/12/2006 21:06, Steven D'Aprano wrote:

> > It just feels so ugly to use try/except to enable the variable but I've
> > found it useful at least once.
>
>That's a matter of taste. Try replacing the try...except block with
>hasattr:
>
>def doStuff():
>     if hasattr(doStuff, timesUsed):
>         doStuff.timesUsed += 1
>     else:
>         doStuff.timesUsed = 1
>     do_common_code

Using hasattr you end checking every access to "timesUsed" twice. 
Using a try/except, after the initial setup, there is no additional overhead.
hasattr does exactly that: it calls getattr to see if it raises an 
exception (this is documented behavior, not a hidden implementation detail).
In Python it's far more common EAFP ('easier to ask for forgiveness 
than permission') than LBYL ('look before you leap').


-- 
Gabriel Genellina
Softlab SRL 


	

	
		
__________________________________________________ 
Preguntá. Respondé. Descubrí. 
Todo lo que querías saber, y lo que ni imaginabas, 
está en Yahoo! Respuestas (Beta). 
¡Probalo ya! 
http://www.yahoo.com.ar/respuestas 




More information about the Python-list mailing list