Ответ 1
Используйте pass для no-op:
if x == 0:
pass
else:
print "x not equal 0"
И вот еще один пример:
def f():
pass
Или:
class c:
pass
Я часто нахожу, что пишу, если /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
(Код на самом деле довольно длинный и сложнее. Это просто для иллюстрации структуры).
Мне не нравится использовать переменную как no-op, но это самый простой способ, о котором я мог думать. Есть ли лучший способ?
Используйте pass для no-op:
if x == 0:
pass
else:
print "x not equal 0"
И вот еще один пример:
def f():
pass
Или:
class c:
pass
Как насчет pass
?
Ссылки для команды pass
см. ниже: http://www.network-theory.co.uk/docs/pytut/passStatements.html
Если вам нужна функция, которая ведет себя как nop, попробуйте
nop = lambda:None
nop()
Иногда я делаю такие вещи, когда я делаю зависимости необязательными:
try:
import foo
bar=foo.bar
baz=foo.baz
except:
bar=nop
baz=nop
# Doesn't break when foo is missing:
bar()
baz()