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

  • Dirty Loops

    Dirty Loops

    21 Mayıs 2007
  • Gan Eden Productions

    Gan Eden Pro

    11 HAZİRAN 2011
  • psidot

    psidot

    2 Kasım 2006