easy question on parsing python: "is not None"

Jean-Michel Pichavant jeanmichel at sequans.com
Tue Aug 10 05:19:33 EDT 2010


Ben Finney wrote:
> Peter Pearson <ppearson at nowhere.invalid> writes:
>
>   
>> Hey, that's a cute example, but . . . what a trap! Is it possible to
>> document the use-the-object-not-the-string requirement loudly enough
>> that people won't get caught?
>>     
>
> Don't use strings for such values. The data isn't going to be used, so
> there's no sense using a semantically rich data type like a string.
>
> Instead, use an ‘object’ instance; then, the only way to get a binding
> that will compare equal is to use the very object itself.
>
> FORWARD = object()
> BACKWARD = object()
>
>   
Strings may have their use, most of the time providing a string 
representation of the object, here is an example:

FORWARD = object()

print 'moving %s' % FORWARD
 > moving <object object at 0xb7dab5a8>

Another approach using strings:

class Direction:
    FORWARD = 'forward'

print "moving %s' % Direction.FORWARD
 > moving forward

Note that
Direction.FORWARD is Direction.FORWARD
is safe and will return True.

JM







More information about the Python-list mailing list