Python betiğini sonlandırma

PHP'de bir betiği erken durduran die() komutunun farkındayım.

Bunu Python'da nasıl yapabilirim?

Çözüm
import sys
sys.exit()

ayrıntıları [sys modülü belgelerinden][çıkış]:

sys.exit([arg])

Python'dan çıkış. Bu, aşağıdakileri yükselterek uygulanır SystemExit istisnası, bu nedenle finally cümleleri tarafından belirtilen temizleme eylemleri try] try deyimlerinin >'leri onurlandırılır ve bu deyimlere müdahale etmek mümkündür. bir dış seviyede çıkış girişimi.

İsteğe bağlı argüman arg çıkış durumunu veren bir tamsayı olabilir (varsayılan değer sıfırdır) veya başka bir nesne türü. Eğer bir tamsayı ise, sıfır "başarılı sonlandırma" olarak kabul edilir ve sıfır olmayan herhangi bir değer kabuklar ve benzerleri tarafından "anormal sonlandırma" olarak kabul edilir. Çoğu sistem 0-127 aralığında olmasını gerektirir ve tanımsız sonuçlar üretir aksi takdirde. Bazı sistemlerde belirli bir atama için bir kural vardır belirli çıkış kodlarının anlamları, ancak bunlar genellikle az gelişmiş; Unix programları genellikle komut satırı sözdizimi için 2 kullanır hataları ve diğer tüm hata türleri için 1. Eğer başka bir nesne türü geçilirse, None sıfır geçmeye eşdeğerdir ve başka herhangi bir nesne stderr'e yazdırılır ve özellikle 1 çıkış koduyla sonuçlanır, sys.exit("some error message") bir programdan çıkmak için hızlı bir yoldur. bir hata oluşuyor.

exit() sonuçta "sadece" bir istisna oluşturduğundan, sadece ana iş parçacığından çağrıldığında süreç ve istisna durduruldu.

Bunun çıkış için 'güzel' bir yol olduğunu unutmayın. Aşağıdaki @glyphtwistedmatrix, 'hard exit' istiyorsanız os._exit(errorcode) kullanabileceğinizi, ancak bunun bir dereceye kadar işletim sistemine özgü olduğunu (örneğin windows altında bir hata kodu almayabilir) ve yorumlayıcının işlem ölmeden önce herhangi bir temizlik yapmasına izin vermediği için kesinlikle daha az dostça olduğunu belirtmektedir.

Yorumlar (7)

Başka bir yol:

raise SystemExit
Yorumlar (2)
from sys import exit
exit()

Parametre olarak işletim sistemine döndürülecek bir çıkış kodu iletebilirsiniz. Varsayılan değer 0'dır.

Yorumlar (2)