Costumo encontrar-me escrevendo se / elif / else constrói em python e quero incluir opções que podem ocorrer, mas para as quais a ação correspondente é não fazer nada. Sei que poderia simplesmente excluir essas instruções if, mas, para facilitar a leitura, acho que é útil incluir todas elas, de modo que, se você estiver olhando o código, poderá ver o que acontece como resultado de cada opção. Como codifico o no-op? Atualmente, estou fazendo assim:
no_op = 0
if x == 0:
y = 2 * a
elif x == 1:
z = 3 * b
elif x == 3:
no_op
(Na verdade, o código é um pouco mais longo que isso e mais complicado. Isso é apenas para ilustrar a estrutura).
Não gosto de usar uma variável como não-op, mas é a maneira mais legal de pensar. Existe uma maneira melhor?
...
) também merece uma menção: stackoverflow.com/a/6189281/38281Respostas:
Use passe para no-op:
E aqui está outro exemplo:
Ou:
fonte
doSQL = lambda *x:x
.else
?pass
não é um valor. Também não consigo ver como isso poderia ser útil.Que tal
pass
?fonte
Se você precisar de uma função que se comporte como um nop, tente
Às vezes, faço coisas assim quando estou tornando as dependências opcionais:
fonte
nop
um contexto que exija especificamente uma expressão (versus uma declaração arbitrária; qv docs.python.org/3/reference/simple_stmts.html e docs.python.org/3/reference/compound_stmts. html ) - como, por exemplo, como uma sub-expressão de um idioma de código existente, como uma compreensão, ou alambda
, ou (deus não permita) uma string a ser passadaeval(…)
( na qual qv docs.python.org/3/library/functions.html# avaliação, se necessário).lambda
para atribuir uma função a uma variável para reutilização é um estilo de codificação ruim. Hádef
para isso.Outra maneira é com reticências:
fonte
None
,136
ou"NothingHere"
. Mas o preenchimento correto em python épass
.