পাইথনে প্রস্থান (0) এবং প্রস্থান (1) এর মধ্যে পার্থক্য


167

পাইথনের মধ্যে exit(0)এবং পার্থক্য কী exit(1)?

আমি আশেপাশে দেখার চেষ্টা করেছি কিন্তু এই লাইনে একটি নির্দিষ্ট প্রশ্ন পাইনি। যদি ইতিমধ্যে এটির উত্তর দেওয়া হয় তবে একটি লিঙ্ক যথেষ্ট।


9
এখানে একটি লিঙ্ক আছে exit()ডক্সে , যা আমাকে খুঁজে চিরকাল নেন।
রাইনে এভারেট


exit(0)এই প্রশ্নটিতে যা আলোচনা করা হয়েছে তা কেবল উপলব্ধি করা হয়েছে এবং আন্ডারস্কোর সহ একটিও রয়েছে _exit(0), পার্থক্যটি এখানে
এলাচ

এই কোডগুলি সম্পর্কে দুর্দান্ত জিনিসটি হ'ল এগুলি সরাসরি ifএকটি bashমোড়কের একটি বিবৃতিতে ব্যবহার করা যেতে পারে , তাই পাইথন প্রোগ্রামটি সফল হয় কিনা বা এটি কোনও শূন্য নয় এমন স্থিতি উত্থাপন করেছে কিনা তা নিয়ে পরবর্তী পদক্ষেপ নেওয়া যেতে পারে।
এসডসোলার

অদ্ভুত, যদি 0 মিথ্যা হয় এবং
পাইথনটিতে

উত্তর:


248

0 এবং 1 হ'ল প্রস্থান কোডগুলি।

exit(0) কোনও ত্রুটি / সমস্যা ছাড়াই একটি পরিষ্কার প্রস্থান মানে

exit(1) মানে কিছু সমস্যা / ত্রুটি / সমস্যা ছিল এবং সে কারণেই প্রোগ্রামটি বন্ধ হচ্ছে।

এটি পাইথন নির্দিষ্ট নয় এবং এটি বেশ সাধারণ। একটি শূন্য-বহির্গমন প্রস্থান কোডটিকে অস্বাভাবিক প্রস্থান হিসাবে বিবেচনা করা হয় এবং অনেক সময় ত্রুটি কোডটি সমস্যাটি কী তা নির্দেশ করে। একটি শূন্য ত্রুটি কোড মানে একটি সফল প্রস্থান।

আপনার প্রোগ্রামের সাথে কী ঘটেছে তা জানার জন্য এটি অন্যান্য প্রোগ্রাম, শেল, কলার ইত্যাদির জন্য দরকারী according


10
এবং প্রস্থান (-1) সম্পর্কে কী?
ফয়জান

16
@ ফাইজান: প্রস্থান কোডটি ইউনিক্সে একটি 8-বিট মান। যদি আপনি প্রার্থনা করেন exit(-1)তবে মানটি সমান exit(255)- কমপক্ষে উল্লেখযোগ্য 8 টি বিট কলিং প্রোগ্রামে রিলে হয় (শেল বা যাই হোক না কেন)।
জোনাথন লেফলার

4
মনে রাখবেন যে, অনুযায়ী ডক্স , exit()দ্বারা যোগ করা হয় siteমডিউল, এবং প্রোগ্রাম দ্বারা ব্যবহার করা উচিত নয়। পরিবর্তে, অন্য কোনও মডিউল আমদানি করতে না চাইলে ব্যবহার করুন sys.exit()বা এমনকি করুন raise SystemExit
ডেভিউলেস

2
ইউনিক্স / লিনাক্স থেকে প্রস্থান কোডগুলির কারণে, আমি ভাবছিলাম যে 0 টি সত্য এবং 1 পাইথন অবস্থায় Fal
vlyalcin

19

এটি চলমান শেষ করার পরে প্রোগ্রামটির প্রস্থান স্থিতি নির্ধারণ করে (সাধারণত, সাফল্যের জন্য 0 এবং ত্রুটির জন্য 1)।

পাইথনের কাছে এটি অনন্য নয় এবং সঠিক প্রভাবটি আপনার অপারেটিং সিস্টেম এবং প্রোগ্রামটি কীভাবে ডাকা হয় তার উপর নির্ভর করে (যদিও 99% সময়, আপনি যদি পাইথন স্ক্রিপ্টগুলি চালাচ্ছেন তবে কিছু যায় আসে না)।


12

পাইথন সহ সমস্ত সি প্রোগ্রামগুলির স্ট্যান্ডার্ড কনভেনশনটি exit(0)সাফল্য এবং exit(1)বা অন্য কোনও শূন্য মান (১.২55৫ পরিসরে) ব্যর্থতা নির্দেশ করার জন্য। 0..255 ব্যাপ্তির বাইরের যে কোনও মানকে মডুলো 256 চিকিত্সা করা হয় (প্রস্থান স্থিতিটি 8-বিট মানতে সঞ্চয় করা হয়)। কখনও কখনও, এটি স্বাক্ষরযুক্ত হিসাবে বিবেচিত হবে (যাতে আপনি দেখতে পারেন -128, -127, ইত্যাদি) তবে আরও সাধারণত এটি স্বাক্ষরবিহীন হিসাবে বিবেচিত হয়।

এই স্থিতিটি পাইথনকে আহ্বান করে এমন কোডের কাছে উপলব্ধ। এই কনভেনশনটি প্ল্যাটফর্ম জুড়ে প্রযোজ্য, যদিও শূন্য-বহির্গমন প্রস্থান স্থিতির অর্থ বিভিন্ন প্ল্যাটফর্মগুলিতে পৃথক হতে পারে।


7

exit()ফাংশনে আপনি যে নম্বরটি পাস করবেন তা হ'ল আপনার প্রোগ্রামের রিটার্ন কোড যা অপারেটিং সিস্টেমকে দেওয়া হয়। আপনার প্রোগ্রামের দৃষ্টিকোণ থেকে, কোনও পার্থক্য নেই: উভয় ক্ষেত্রেই মৃত্যুদন্ড কার্যকর হবে এবং ফাংশনে সরবরাহ করা মানটি ওএসকে দেওয়া হবে। তবে কিছু সরঞ্জাম এবং স্ক্রিপ্টগুলি প্রোগ্রামটির প্রস্থান কোড বিবেচনা করে। বেশিরভাগ সরঞ্জামগুলি 0 এ ফিরে আসে যখন তারা সফল হয় এবং কোনও ত্রুটি নির্দেশ করতে ননজারো হয়।

সুতরাং, যদি আপনার প্রোগ্রামটি কোনও স্ক্রিপ্ট, একটি স্বয়ংক্রিয় সরঞ্জাম থেকে বা অন্য কোনও সফ্টওয়্যার থেকে পরিচালিত হবে যা রিটার্ন কোড (যেমন কোনও আইডিই) বিবেচনায় নিয়ে থাকে তবে আপনি কী ফিরেছেন সে সম্পর্কে আপনাকে অবশ্যই যত্নবান হতে হবে।

সন্দেহ থাকলে, সবকিছু ঠিক আছে তা বোঝাতে কেবল 0 ফিরে আসুন।


6

exit(0): এর ফলে প্রোগ্রামটি একটি সফল সমাপ্তির সাথে প্রস্থান করে।

exit(1): এটি সিস্টেম-নির্দিষ্ট অর্থ সহ প্রোগ্রামটি থেকে বেরিয়ে আসে।

অনেক সিস্টেমে, exit(1)একরকম ব্যর্থতার সংকেত দেয়, তবে এর কোনও গ্যারান্টি নেই।

আমার স্মরণ হিসাবে, সি স্ট্যান্ডার্ডটি কেবল তিনটি স্ট্যান্ডার্ড প্রস্থান মানগুলিকে স্বীকৃতি দেয়:

  • EXIT_SUCCESS - সফল সমাপ্তি
  • EXIT_FAILURE - ব্যর্থ সমাপ্তি
  • 0 -- একই রকম EXIT_SUCCESS
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.