böyle Python şey bazı kod yazıyorum: Ben döngü kesme çalıştığınızdaPython'da, bir fonksiyonun KeyboardInterrupt ve SystemExit'i yakalamasını engelleyebilir miyim?
import sys
try:
for x in large_list:
function_that_catches_KeyboardInterrupt(x)
except KeyboardInterrupt:
print "Canceled!"
sys.exit(1)
, temelde aşağı Kontrol fonksiyonunun her çağırmayı iptal için yeterince uzun + C tutmak gerekir large-list
'un tüm öğeleri için, ve sonra programımın çıkışı var.
Bu işlevin, kendimi yakalayabilmem için KeyboardInterrupt'ı yakalamasını engelleyebileceğim bir yol var mı? Düşünebildiğim tek yol, yalnızca işlevin çağrılması için ayrı bir iş parçacığı oluşturarak iş parçacığını kötüye kullanmak olurdu, ama bu aşırı görünüyor.
Düzenleme: söz konusu kodu (Ben kolayca değiştiremezsiniz olan) kontrol ve aslında çıplak except:
kullanır, bu nedenle bile sys.exit(1)
bir SystemExit
istisna olarak yakalanır. Çıplak except:
bloğundan nasıl çıkıp programdan çıkarım?
Bu benim için aşırı bir şey gibi görünmüyor ... çünkü ortaya çıkabilecek diğer her şey bir çeşit siyahı içerebiliyor büyü ... – GaretJax
Her bir çağrı için bir iş parçacığı kullanmanıza gerek olmadığını unutmayın, yalnızca bir tanesi yeterlidir. ;-) – GaretJax