كيف يمكنني إحباط تنفيذ بيثون السيناريو ؟ [مكررة]
سؤال
ممكن مكررة:
إنهاء البرنامج النصي الثعبان
لدي بسيط بيثون السيناريو الذي أريد أن وقف التنفيذ إذا كان الشرط.
على سبيل المثال:
done = True
if done:
# quit/stop/exit
else:
# do other stuff
أساسا أنا أبحث عن شيء يتصرف مكافئ إلى 'العودة' الكلمات الرئيسية في الجسم وظيفة التي تسمح بتدفق رمز للخروج من وظيفة يتم تنفيذ التعليمات البرمجية المتبقية.
المحلول
للخروج من البرنامج النصي يمكنك استخدامها ،
import sys
sys.exit()
يمكنك أيضا توفير مخرج قيمة الحالة ، عادة ما تكون عدد صحيح.
import sys
sys.exit(0)
مخارج مع الصفر ، وهي عموما تفسر النجاح.غير الصفر رموز عادة ما تعامل على أنها أخطاء.الافتراضي هو الخروج مع الصفر.
import sys
sys.exit("aa! errors!")
طباعة "aa!أخطاء!" ومخارج مع رمز حالة من 1.
هناك أيضا _exit() وظيفة في نظام التشغيل وحدة.على sys.exit() وظيفة يثير SystemExit استثناء إلى الخروج من البرنامج ، وذلك في محاولة البيانات رمز تنظيف يمكن تنفيذ.نظام التشغيل._exit() صيغة لا تفعل هذا.فقط ينتهي البرنامج دون أن تفعل أي تنظيف أو التنظيف إخراج المخازن ، لذلك ينبغي أن لا تستخدم عادة.
على بيثون مستندات تشير إلى أن نظام التشغيل._exit() هو الطريق الطبيعي أن ينتهي الطفل عملية خلق مع دعوة إلى نظام التشغيل.شوكة () ، لذلك لا تستخدم في ظروف معينة.
نصائح أخرى
import sys
sys.exit()
هل يمكن وضع الجسم من السيناريو الخاص بك إلى وظيفة ومن ثم يمكنك العودة من تلك الوظيفة.
def main():
done = True
if done:
return
# quit/stop/exit
else:
# do other stuff
if __name__ == "__main__":
#Run as main program
main()
يمكنك استخدام إما:
import sys
sys.exit(...)
أو:
raise SystemExit(...)
المعلمة الاختيارية يمكن أن يكون رمز إنهاء أو رسالة خطأ.كلتا الطريقتين هي متطابقة.كنت تفضل sys.الخروج, ولكن لقد تحولت في الآونة الأخيرة إلى رفع SystemExit, لأنه يبدو أن تبرز الأفضل من بين بقية رمز (بسبب رفع الكلمات الرئيسية).
exit() ينبغي أن تفعل خدعة
exit() ينبغي أن تفعل ذلك.
محاولة
sys.exit("message")
هو مثل perl
die("message")
إذا كان هذا هو ما كنت أبحث عنه.ينهي تنفيذ البرنامج النصي حتى يطلق عليه من وحدة المستوردة / صفر /وظيفة
إذا كان البرنامج بأكمله يجب التوقف عن استخدام sys.exit() وإلا مجرد استخدام عودة فارغة.