spliting on ":"

Steve Holden steve at holdenweb.com
Mon Mar 6 16:02:20 EST 2006


Bryan Olson wrote:
> Peter Hansen wrote:
> 
>>The archives could tell you more, but basically on is usually interested 
>>in *identity* with a singleton object (None), not in whether the object 
>>on is examining happens to compare equal.  A custom object could be 
>>designed to compare equal to None in certain cases, even though it *is 
>>not* None, leading to the "== None" approach being defective code.
> 
> 
> But if a custom class allows instances to compare as equal to None,
> we might reasonably expect the programmers had a reason. There's not 
> much anyone can do with None besides passing it around and comparing
> it by value or identity. Insisting on 'is' rather than '==' will break
> whatever polymorphism such a custom object was trying to achieve.
> 
That's all very well, but completely hypothetical. What's the use case 
for this theoretical object? Why should anything that isn't None compare 
equal with it?

None is explicitly defined as a type with a single instance, so 
comparing equal to None without *being* None seems like a *very* bad idea.
> 
> 
>>In the specific code in question, it won't make any differences, but I 
>>pointed it out to help folks who don't know this to start developing the 
>>safer habit, which is always to use "is" and "is not" with None (or, 
>>generally, with other singletons).
> 
> 
> Hmmm... To make my code safer, I'm thinking I should replace doc strings
> that say "if bluf is Null" with "if blurf compares equal to Null".
> 
> 
Humour?

regards
  Steve
-- 
Steve Holden       +44 150 684 7255  +1 800 494 3119
Holden Web LLC/Ltd                 www.holdenweb.com
Love me, love my blog         holdenweb.blogspot.com




More information about the Python-list mailing list