পাইথনে, দুটি একই ধরণের নামকৃত ফাংশন রয়েছে exit()
এবং sys.exit()
। পার্থক্য কী এবং আমি কখন অন্যটির ওপরে ব্যবহার করব?
পাইথনে, দুটি একই ধরণের নামকৃত ফাংশন রয়েছে exit()
এবং sys.exit()
। পার্থক্য কী এবং আমি কখন অন্যটির ওপরে ব্যবহার করব?
উত্তর:
exit
ইন্টারেক্টিভ শেলের জন্য সহায়ক - sys.exit
এটি প্রোগ্রামগুলিতে ব্যবহারের জন্য।
site
মডিউল (যা সূচনার সময় স্বয়ংক্রিয়ভাবে আমদানি করা হয় ব্যতীত যদি,-S
কম্যান্ড-লাইন অপশন উল্লিখিত থাকলে) বিল্ট-ইন নামস্থান বিভিন্ন ধ্রুবক যোগ (যেমনexit
) । এগুলি ইন্টারেক্টিভ ইন্টারপ্রেটার শেলের জন্য কার্যকর এবং প্রোগ্রামগুলিতে ব্যবহার করা উচিত নয় ।
প্রযুক্তিগতভাবে, তারা বেশিরভাগই একই করে: উত্থাপন SystemExit
। sys.exit
যাতে করে sysmodule.c :
static PyObject *
sys_exit(PyObject *self, PyObject *args)
{
PyObject *exit_code = 0;
if (!PyArg_UnpackTuple(args, "exit", 0, 1, &exit_code))
return NULL;
/* Raise SystemExit so callers may catch it or clean up. */
PyErr_SetObject(PyExc_SystemExit, exit_code);
return NULL;
}
যদিও যথাক্রমে সাইট.পি এবং _সাইটবিল্টিনস.পি.-exit
এ সংজ্ঞায়িত করা হয়েছে।
class Quitter(object):
def __init__(self, name):
self.name = name
def __repr__(self):
return 'Use %s() or %s to exit' % (self.name, eof)
def __call__(self, code=None):
# Shells like IDLE catch the SystemExit, but listen when their
# stdin wrapper is closed.
try:
sys.stdin.close()
except:
pass
raise SystemExit(code)
__builtin__.quit = Quitter('quit')
__builtin__.exit = Quitter('exit')
মনে রাখবেন একটি তৃতীয় প্রস্থান বিকল্প রয়েছে, যথাঃ os._exit , যা ক্লিনআপ হ্যান্ডলার, ফ্লাশিং স্টিডো বাফার, ইত্যাদি কল না করেই প্রস্থান করে (এবং যা সাধারণত ক এর পরে শিশু প্রসেসে ব্যবহার করা উচিত fork()
)।
from module import *
।
আমি exit()
যদি কোনও কোড ব্যবহার করি এবং এটি শেলটিতে চালিত করি তবে এটি একটি বার্তা দেখায় যা আমি জিজ্ঞাসা করব যে আমি প্রোগ্রামটি হত্যা করতে চাই কিনা। এটা সত্যিই বিরক্তিকর।
এখানে দেখো
তবে sys.exit()
এই ক্ষেত্রে ভাল। এটি প্রোগ্রামটি বন্ধ করে দেয় এবং কোনও সংলাপ বাক্স তৈরি করে না।
sys.exit()
প্রোগ্রামগুলির অভ্যন্তরে ব্যবহার করা উচিত।
-S
ব্যবহার না করা পর্যন্ত সূক্ষ্ম কাজ করে । এমনকি এটির সাথে কাজ করার একটি উপায়-S
উল্লেখ করাfrom sys import *
।