why are these not the same?

Lowell Kirsh lkirsh at cs.ubc.ca
Thu Jan 20 04:48:41 EST 2005


D'oh I should've caught that myself.

Thanks.

Fredrik Lundh wrote:
> Lowell Kirsh wrote:
> 
>>On a webpage (see link below) I read that the following 2 forms are not the same and that the 
>>second should be avoided. They look the same to me. What's the difference?
> 
> 
>>def functionF(argString="abc", argList = None):
>>        if argList is None: argList = []
>>        ...
>>
>>def functionF(argString="abc", argList=None):
>>        argList = argList or []
>>        ...
> 
> 
> "is None" tests for None, "argList or" tests for a false value.  None is
> false, but many non-None objects are also false.
> 
> "should be avoided" sounds like overly zealous advice to me; use the
> latter form if you understand it.
> 
> </F> 
> 
> 
> 



More information about the Python-list mailing list