mutable default parameter problem [Prothon]
Rob Williscroft
rtw at freenet.co.uk
Wed Jun 16 03:52:04 EDT 2004
Andrea Griffini wrote in news:dqqvc0dbcfr7ns1bpqo9f5oqvg9us3o9o2 at 4ax.com
in comp.lang.python:
>>def F(a, b, cache={}):
>> try:
>> return cache[(a,b)]
>> except (IndexError, ):
>> value = cache[(a,b)] = do_some_long_calc(a,b)
>> return value
>
> I'm new to python. To my eyes this is a pretty poor attempt to
> have static variables. I've implemented in the past a few
> scripting languages, and it's not really difficult to
> implement static variables...
>
But python has static variables.
def another( x ):
y = getattr( another, 'static', 10 )
another.static = x
return y
print another(1), another(2), another(4)
> it's quite surprising for me
> there's no such a concept in python and just that wart...
> hmmm... excuse me... that bad smelling wart has to be used instead.
>
It seems to me in python "everything is an object" leads to
"everything is a dictionary" (except when it isn't:).
Rob.
--
http://www.victim-prime.dsl.pipex.com/
More information about the Python-list
mailing list