Steven said:
Riccardo said:
On Fri, 24 Jun 2005 09:00:04 -0500, D H wrote:
Bo Peng wrote:
I need to pass a bunch of parameters conditionally. In C/C++, I can
do func(cond1?a:b,cond2?c:d,.....)
Is there an easier way to do this in Python?
The answer is simply no, just use an if statement instead.
That's not true.
One used form is this:
result = cond and value1 or value2
So anywhere someone uses x?y:z you recommend they use "x and y or z"
instead, or else "[y,z][x]", but not:
if x:
val = y
else:
val = z
That's not what he said at all. Nowhere did Riccardo suggest that one or
the other method was better than if..else. The *most* he did was to
suggest a personal opinion that cond and value1 or value2 was "nice".
He said "that's not true", when I suggested that there is not something
easier than ? ternary expressions in Python, and that the original
poster should use if statements instead. So yes, that is what he said
by refuting my suggestion. He must have misinterpreted my response as
"if statements are the only way to do something like ternary
expression", which is not what I said. Again, I said there is *nothing*
that is as easy as to use as ternary expressions in Python - use if
statements instead.
That's fine. Recommend it all you like. But it isn't the only way, and it
isn't even arguably the best or easiest or simplest way.
You have assumed the same mistaken interpretation of my remarks as he
did. When did I ever say an if statement is the *only* way? In the
very note to which you responded, I even acknowledged two other ways of
doing this. If statements are in the best and easiest and simplest way
to do conditionals, however, which is exactly what I was arguing.
To you maybe. Actually, to me also. But "easier" doesn't just mean
"easier to read" -- it also means "easier to write",
I explicitly stated in the very note you replied to that if statements
are easier to understand and read, yet not easier to write than ?
ternary conditionals. So thanks for duplicating my own point.
Until then, the question is at least partly a matter of personal taste,
and as such, there is no justification for such sweeping generalities as
"the answer is simply no, just use an if statement instead".
Except that is the right answer. It's too bad diehard Python
evangelists (to borrow another one of Peter Hansen's flames) don't give
people straight answers when they are looking for a feature that python
just doesn't have and likely will never have, such as the ? ternary
operator. The answer is no, there is nothing as easy to use as that in
Python, and I suggested using if statements instead.