acting on items passed to a method via a dictiomary
Donnal Walter
donnal at donnal.net
Mon Oct 18 15:59:37 EDT 2004
David M. Cooke wrote:
> "Diez B. Roggisch" <deetsNOSPAM at web.de> writes:
>>def foo(items=None):
>> if not items is None:
>
>
> Or the more readable (IMO):
>
> def foo(items=None):
> if items is not None:
> ...
>
> They're equivalent, but a reader could see 'not items is None' as
> '(not items) is None)' [although it's not].
>
As I mentioned in a previous post this morning, the default items = {}
is now a somewhat irrelevant side-issue, but your comment here will help
me in a dozen other locations. For some reason it had never occurred to
me that "items is not None" would be equivalent to "not items is none"
because I made a wrong assumption about the nature of the *is* operator.
But a quick shell session shows that you are quite right.
>>> x = None
>>> not x is None
False
>>> x is not None
False
>>> y = {}
>>> not y is None
True
>>> y is not None
True
>>>
Thank you.
Donnal Walter
Arkansas Children's Hospital
More information about the Python-list
mailing list