SORU
28 HAZİRAN 2011, Salı


Çıkış arasındaki fark() ve sys.() çıkış Python?

Ben sadece benzer biçimde adlandırılmış işlevler exit() sys.exit() Python iki fark vardır. Ne fark var ve ne zaman bir kullanmalıyım?

CEVAP
28 HAZİRAN 2011, Salı


exit - sys.exit programlarda kullanılmak üzere tasarlanmıştır etkileşimli kabuk için bir yardımcı.

Site modül-S komut satırı seçeneği belirtilmişse dışında otomatik olarak başlatma sırasında alınan, ()-yerleşik ad birkaç sabit ekler(*örneğin 6*).Yorumlayıcı etkileşimli kabuk için yararlıdır ve programlar kullanılmamalıdır.


Teknik olarak, çoğunlukla aynı şeyi yapıyorlar: yetiştirme SystemExit. sys.exit öyle yaparsysmodule.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 tanımlanmış isesite.py:

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')

Üçüncü bir çıkış seçeneği, yani temizlik işleyicileri çağıran olmadan, istasyonu. tamponlar kızarma çıkar os._exit, vs. olduğunu unutmayın. (ve normalde sadece fork() a) sonra çocuk süreç içinde kullanılmalıdır.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • boogie2988

    boogie2988

    6 NİSAN 2006
  • Neil Cicierega

    Neil Ciciere

    22 Mart 2006
  • Toddler Fun Learning

    Toddler Fun

    8 ŞUBAT 2013