[Zope-dev] Re: [Vote] PEP308 voting began
Dieter Maurer
dieter@handshake.de
Sat, 8 Mar 2003 14:33:41 +0100
Lennart Regebro wrote at 2003-3-7 15:57 +0100:
> 1. Python is kept as is.
> 2. To support one-line if-else in attributes in ZPT, the python
> expressions used in ZPT imports an extra method. This method can be
> called whetever people want it toi be called, but for claritys sake lets
> call it 'if_else'
>
> if_else(expression, true_result, false_result)
We have this function. It is called "test" (and more flexible than
your proposal).
It causes occasional questions on the mailing lists because
it does not behave as one expects of an if-then-else.
The main problem:
if existence_of_some_object
then: expression_depending_on_this_object
else: alternative_expression
cannot be expressed with "test" (or whatever function, unless
Python changes function call semantics).
*Provided*, "expression_depending_on_this_object" does not
evaluate to a Python false value,
existence_of_some_object
and expression_depending_on_this_object
or alternative_expression
can be used. However, this is less clear (than an explicit
"if-then-else" expression) and error prone (due to the
*provided* condition).
Dieter