Ich bin gerade in einem Open-Source-Python auf dieses Idiom gestoßen, und ich verschluckte mich an meinem Drink.
Statt:
%Vor%oder sogar:
%Vor%der Code gelesen:
%Vor%Ich kann sehen, dass dies das gleiche Ergebnis ist, aber ist das ein typisches Idiom in Python? Wenn ja, läuft ein Performance-Hack schnell? Oder ist es nur ein einmaliges, das eine Überprüfung des Codes benötigt?
Das Idiom "a und b oder c" war der kanonische Weg, die ternäre Arithmetik auszudrücken, wenn in Python vor PEP 308 wurde geschrieben und umgesetzt. Dieses Idiom versagt, die Antwort "b" ist falsch selbst; Um den allgemeinen Fall zu unterstützen, könnten Sie
schreiben %Vor%Eine alternative Schreibweise war
%Vor%was mit der Einführung des Bool-Typs als
umgeschrieben werden könnte %Vor%(falls es nicht klar ist: die Umwandlung in bool und der nicht-Operator ist notwendig, wenn a nicht bekannt ist, bool schon zu sein)
Heute sollte die Bedingungsausdrucksyntax verwendet werden, wenn das Ding ein Ausdruck sein muss; Ansonsten empfehle ich, die if-Anweisung zu verwenden.
Sie sollten Verwenden des und-oder Tricks (Abschnitt 4.6.1) von Dive Into lesen Python von Mark Pilgrim. Es stellt sich heraus, dass der und-oder Trick große Fallstricke hat, die Sie beachten sollten.
Dieser Code ist für meinen Geschmack ein großer, fugriger und schlauer, aber ich nehme an, dass an sich nichts falsch ist. Ich denke, das ist wirklich nur ein Fall von "mach alles in einer Linie" -Syndrom.
Ich persönlich hätte mich allerdings für die erste Form entschieden.
Huch. Überhaupt nicht lesbar. Für mich bedeutet Pythonic einfach zu lesen.
%Vor%Klingt etwas, was Sie in Perl tun würden.
Tags und Links python coding-style