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