كيف يمكنني إحباط تنفيذ بيثون السيناريو ؟ [مكررة]

StackOverflow https://stackoverflow.com/questions/179369

  •  05-07-2019
  •  | 
  •  

سؤال

ممكن مكررة:
إنهاء البرنامج النصي الثعبان

لدي بسيط بيثون السيناريو الذي أريد أن وقف التنفيذ إذا كان الشرط.

على سبيل المثال:

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() وإلا مجرد استخدام عودة فارغة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top