Trinary operator?
Philipp Lenssen
lenssen at hitnet.rwth-aachen.de
Fri Apr 19 16:47:09 EDT 2002
"Cliff Wells" <logiplexsoftware at earthlink.net> wrote in message
news:mailman.1019240861.31256.python-list at python.org...
>..
> It hadn't occurred to me that exceptions would be any faster than
> .get(). I didn't use a predefined dictionary since the OP was looking for
an
> equivalent to C's ternary operator (which I took to mean "one line")
>..
The OP has to add that his ternary operators actually can span several lines
for readability. (I'm not a big fan of saving vertical space when
readability suffers.)
language = "german";
gender = "m";
verboseGenderMale = (language == "english") ?
"male" : "männlich";
verboseGenderFemale = (language == "english") ?
"female" : "weiblich";
verboseGender = (gender == "m") ?
verboseGenderMale : verboseGenderFemale;
And no, this is not very realistic code and I would likely do it all
different.
function getVerboseGender(gender)
{
verboseGender = "";
isMale = (gender == "m");
isFemale = (gender == "f");
if (isMale || isFemale)
{
switch (self->language)
{
case "german":
verboseGender = (isMale) ?
"männlich" : "weiblich";
break;
default: // english
verboseGender = (isMale) ?
"male" : "female";
}
}
else
{
message = "Gender exception: asexual";
error->raise(message);
}
return verboseGender;
}
(Nope, I guess in the end I would put that data where it belongs, outside
the source.)
More information about the Python-list
mailing list