SORU
8 Temmuz 2009, ÇARŞAMBA


__'In modül fonksiyonu Python aramayı__ adı olsun

myapp/foo.py içerdiğini varsayalım:

def info(msg):
    caller_name = ????
    print '[%s] %s' % (caller_name, msg)

Ve myapp/bar.py içerir:

import foo
foo.info('Hello') # => [myapp.foo] Hello

caller_name arama fonksiyonları __name__ öznitelik kümesi olmak istiyorum' ('uygulamam.modül') bu durumda. foo Bu nasıl yapılabilir?

CEVAP
8 Temmuz 2009, ÇARŞAMBA


Modülünü inceleyin bakın:

inspect.stack() bilgi yığını dönecektir.

İçine fonksiyon inspect.stack()[1] arayan yığın döndürür. Oradan, arayanın adı işlev, modül, vb hakkında daha fazla bilgi alabilirsiniz.

Ayrıntılı bilgi için: doktorlar

http://docs.python.org/library/inspect.html

Ayrıca, Doug Hellmann PyMOTW serisi kontrol modülü güzel bir yazı var:

http://pymotw.com/2/inspect/index.html#module-inspect

EDİT: sen Burada ne istiyor hangi bir şifre, sanırım

def info(msg):
    frm = inspect.stack()[1]
    mod = inspect.getmodule(frm[0])
    print '[%s] %s' % (mod.__name__, msg)

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Emotional Trancer

    Emotional Tr

    4 Mart 2010
  • RawBrahs

    RawBrahs

    28 Aralık 2010
  • TheOtherMau5

    TheOtherMau5

    6 Mart 2012