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