Is this a legal / acceptable statement ?

Philippe Martin pmartin at snakecard.com
Fri May 5 10:42:38 EDT 2006



Larry Bates wrote:

> Philippe Martin wrote:
>> Hi,
>> 
>> This code works, but is it "appropriate" ?
>> 
>> l_init = False
>> 
>> if True == l_init and 1234 = l_value:
>>  print 'l_value is initialized'
>> 
>> I know I can do this with a try but ...
>> 
>> Philippe
>> 
>> 
> 1) You have a syntax error 1234 == l_value (note ==)
> 2) This doesn't test to see if l_value is initialized
>    because if it isn't you get:
> 
> Traceback (most recent call last):
>   File
>   "C
\Python24\Lib\site-packages\pythonwin\pywin\framework\scriptutils.py",
> line 310, in RunScript
>     exec codeObject in __main__.__dict__
>   File "junk.py", line 1, in ?
>     if True == l_init and 1234 == l_value:
> NameError: name 'l_init' is not defined
> 
> 3) It is unclear what l_init is used for in this context.
>    Setting it to True doesn't tell you anything about l_value.
> 
> Normally you do something like:
> 
> l_value=None
> .
> . Intervening code
> .
> if l_value is None:
>     print "l_value uninitialized"
> 
> Or (something I never use):
> 
> if not locals().has_key('l_value'):
>     print "l_value uninitialized"
> 
> 
> -Larry Bates


l_init really is a boolean parameter and l_value a value that _might_ exist
in a shelve.

So I just want to have a parameter to a method so if the first value tested
is false (l_init) then the second (l_value) does not get tested ... because
it is the second in the statement and only seems to get evaluated if the
first one is true.

Philippe







More information about the Python-list mailing list