Ich schreibe oft if / elif / else-Konstrukte in Python und möchte Optionen einschließen, die auftreten können, für die die entsprechende Aktion jedoch darin besteht, nichts zu tun. Mir ist klar, dass ich diese if-Anweisungen einfach ausschließen könnte, aber aus Gründen der Lesbarkeit finde ich es hilfreich, sie alle einzuschließen, damit Sie beim Durchsuchen des Codes sehen können, was als Ergebnis jeder Option passiert. Wie codiere ich das No-Op? Derzeit mache ich das so:
no_op = 0
if x == 0:
y = 2 * a
elif x == 1:
z = 3 * b
elif x == 3:
no_op
(Der Code ist tatsächlich etwas länger und komplizierter. Dies dient nur zur Veranschaulichung der Struktur.)
Ich mag es nicht, eine Variable als No-Op zu verwenden, aber es ist die beste Art, die ich mir vorstellen kann. Gibt es einen besseren Weg?
...
) verdient auch eine Erwähnung: stackoverflow.com/a/6189281/38281Antworten:
Verwenden Sie den Pass für No-Op:
Und hier ist ein weiteres Beispiel:
Oder:
quelle
doSQL = lambda *x:x
.else
?pass
es kein Wert ist. Ich kann auch nicht sehen, wie es nützlich sein könnte.Wie wäre es
pass
?quelle
Wenn Sie eine Funktion benötigen, die sich wie ein NOP verhält, versuchen Sie es
Manchmal mache ich solche Dinge, wenn ich Abhängigkeiten optional mache:
quelle
nop
in einem Kontext benötigen, der speziell einen Ausdruck erfordert (im Vergleich zu einer beliebigen Anweisung; siehe docs.python.org/3/reference/simple_stmts.html und docs.python.org/3/reference/compound_stmts. html ) - wie z. B. als Unterausdruck zu einer vorhandenen Code-Sprache wie einem Verständnis oder einerlambda
oder (Gott bewahre) einer Zeichenfolge, an die übergeben werden solleval(…)
(siehe qs. docs.python.org/3/library/functions.html#) eval wenn du musst).lambda
Zuweisung einer Funktion zu einer Variablen zur Wiederverwendung ist ein schlechter Codierungsstil. Dafür gibtdef
es.Ein anderer Weg ist mit Ellipse:
quelle
None
,136
oder"NothingHere"
. Aber die richtige Lücke in Python istpass
.