Я часто пишу, что / elif / else создает в python, и я хочу включить опции, которые могут возникнуть, но для которых соответствующее действие ничего не делает. Я понимаю, что могу просто исключить эти операторы if, но для удобства чтения я считаю, что это помогает включить их все, так что если вы просматриваете код, вы можете видеть, что происходит в результате каждой опции. Как я могу кодировать no-op? В настоящее время я делаю это так:
no_op = 0
if x == 0:
y = 2 * a
elif x == 1:
z = 3 * b
elif x == 3:
no_op
(Код на самом деле немного длиннее и сложнее. Это просто для иллюстрации структуры).
Я не люблю использовать переменную в качестве запрета, но это самый лучший способ, о котором я мог подумать. Есть ли способ лучше?
...
) также заслуживает упоминания: stackoverflow.com/a/6189281/38281Ответы:
Используйте pass для no-op:
И вот еще один пример:
Или:
источник
doSQL = lambda *x:x
.else
?pass
это не ценность. Я также не вижу, как это может быть полезно.Как насчет
pass
?источник
Если вам нужна функция, которая ведет себя как nop, попробуйте
Иногда я делаю такие вещи, когда делаю зависимости необязательными:
источник
nop
контекст, в котором конкретно требуется выражение (вместо произвольного выражения; qv docs.python.org/3/reference/simple_stmts.html и docs.python.org/3/reference/compound_stmts. html ) - например, как подвыражение к существующей идиоме кода, например, понимание, илиlambda
, или (не дай бог) строка для передачиeval(…)
(которая qv docs.python.org/3/library/functions.html# eval, если нужно).lambda
для присвоения функции переменной для повторного использования - плохой стиль кодирования. Естьdef
для этого.Еще один способ с многоточием:
источник
None
,136
или"NothingHere"
. Но правильный пробел в python естьpass
.