Rob Richardson wrote:
-----Original Message-----
What about,


def myMethod():
    for condition, exitCode in [
            (cond1, 'error1'),
            (cond2, 'very bad error'),
    ]:
        if not condition:
            break
    else:
do_some_usefull_stuff() # executed only if the we never hit the break statement.
       exitCode = good1

    return exitCode

---- I reply -----

This is interesting, but I don't understand it (which speaks volumes
about the level of my understanding of Python).

First, just to clarify, I don't think the indentation I saw was what was
originally posted.  The "else" must be indented to match the "if", and
the two statements under "else" are in the else block.
No, the else is indented to the for loop.
for ... else is a python statement, the else block is executed only if the loop did never break.
http://docs.python.org/reference/compound_stmts.html#for
The return
statement is indented at the same level as the for statement, so that it
will be executed after the for loop exits.  Correct?

Now, the for loop will set condition to cond1 and exitCode to 'error1'.
Then it checks the contents of the condition variable.  But what does
"not <variable_name>" by itself mean?

condition is a bool value.

if not condition is evaluated to True, if the condition is False.
condition = False
not condition => True
condition = ('Foo' == 'Foo')
not condition => False

[snip]
RobR


My mail client could have messed up with the indentation.

Here is the code:
http://paste-it.net/public/t8a4acd/python/



JM


--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to