default argument value is mutable
ast
nomail at com.invalid
Fri Oct 7 09:45:35 EDT 2016
"jmp" <jeanmichel at sequans.com> a écrit dans le message de
news:mailman.210.1475844513.30834.python-list at python.org...
> On 10/07/2016 02:07 PM, ast wrote:
>>
>> "jmp" <jeanmichel at sequans.com> a écrit dans le message de
>> news:mailman.209.1475841371.30834.python-list at python.org...
>>> On 10/07/2016 01:38 PM, Daiyue Weng wrote:
>>
>>>
>>> So the rule of thumb for default argument value is "No mutable"
>>>
>>> Cheers,
>>
>>
>> It can be used to store some variables from one call of
>> a function to an other one.
>>
>> def test( _store={'x':0}):
>>
>> x = _store['x']
>> ..... do some stuff
>> _store['x'] = x
>
> For personal dirty scripts, possibly, for all other situations, never.
not so dirty in my opinion
> Especially since there's nothing in the code above that cannot be solved using standard idioms .
Yes, putting _store dictionnary outside
_store={'x':0}
def test( ):
x = _store['x']
..... do some stuff
_store['x'] = x
or using a global variable, but you pollute in both case
the global scope unnecessary.
> That is if you care about anyone reading your code ;)
>
> jm
>
>
>
>
>
>
More information about the Python-list
mailing list