Pergunta

Possível duplicata:
Encerrar um script python

Eu tenho um script python simples que quero parar de executar se uma condição for atendida.

Por exemplo:

done = True
if done:
    # quit/stop/exit
else:
    # do other stuff

Essencialmente, estou procurando algo que se comporte equivalentemente com a palavra -chave 'retorno' no corpo de uma função que permite que o fluxo do código saia da função e não execute o código restante.

Foi útil?

Solução

Para sair de um script que você pode usar,

import sys
sys.exit()

Você também pode fornecer um valor de status de saída, geralmente um número inteiro.

import sys
sys.exit(0)

Sai com zero, que geralmente é interpretado como sucesso. Os códigos diferentes de zero são geralmente tratados como erros. O padrão é sair com zero.

import sys
sys.exit("aa! errors!")

Imprime "AA! Erros!" e sai com um código de status de 1.

Há também uma função _exit () no módulo OS. o sys.exit () A função aumenta uma exceção do SystemExit para sair do programa; portanto, tente instruções e o código de limpeza pode ser executado. A versão os._exit () não faz isso. Ele apenas termina o programa sem fazer nenhum buffer de saída de limpeza ou descarga, por isso normalmente não deve ser usado.

o Python Docs Indique que os._exit () é a maneira normal de encerrar um processo infantil criado com uma chamada para os.fork (), por isso tem um uso em determinadas circunstâncias.

Outras dicas

import sys
sys.exit()

Você pode colocar o corpo do seu script em uma função e, em seguida, pode retornar dessa função.

def main():
  done = True
  if done:
    return
    # quit/stop/exit
  else:
    # do other stuff

if __name__ == "__main__":
  #Run as main program
  main()

Você pode usar:

import sys
sys.exit(...)

ou:

raise SystemExit(...)

O parâmetro opcional pode ser um código de saída ou uma mensagem de erro. Ambos os métodos são idênticos. Eu costumava preferir sys.exit, mas ultimamente mudei para aumentar o sistema, porque parece se destacar melhor entre o restante do código (devido ao levantar palavra -chave).

exit () deve fazer o truque

exit () deve fazê -lo.

Tentar

sys.exit("message")

É como o Perl

die("message")

Se é isso que você está procurando. Ele encerra a execução do script, mesmo é chamado de um módulo importado / def / função

Se o programa inteiro deve parar de usar sys.exit (), basta usar um retorno vazio.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top