@fusion44: Was heisst in diesem Kontext eigentlich "übersetzen"? Das sieht sehr danach aus, als wenn Du versuchst C++ 1:1 in Python-Syntax zu schreiben. Wozu soll das gut sein? Schreib doch bitte Python mit Python-Syntax. Es gibt zum Beispiel Sachen, die einfach keinen Sinn machen, wie der 'm_'-Präfix. Den braucht man bei C++ um Member-Variablen initialisieren zu können, um Kollisionen zwischen Argumentnamen und Membernamen zu vermeiden. Das Problem gibt's bei Python nicht also ist auch die "Lösung" völlig überflüssig. Und dan gäb's da noch den Python Style Guide, der eine andere Schreibweise von Namen nahelegt.
Man könnte das auch mit einer Schleife ausdrücken:
Code: Alles auswählen
hor_axis_color = self.color_1
for cam_axis, color in ((cam_up_x, RED),
(cam_up_y, GREEN),
(cam_up_z, BLUE)):
if real_equal(cam_axis, 1):
hor_axis_color = color
break
Dein zweites Beispiel kann man ganz ohne Fallunterscheidung so schreiben:
@Y0Gi: Das erste Beispiel ist IMHO lesbar so wie es formatiert ist. Versuchs mal als ``switch``/``case`` zu sehen wo bei jedem ``case`` ein Ausdruck ausgewertet wird, statt nur einmal beim ``switch``. Also quasi die "guard"-Syntax bei Haskell oder `cond` bei Scheme.