Доберитесь __ имя __ вызова модуля функции в Python

У Вас есть источник? Во многих случаях различие между автономным приложением и сервисом минимально.

большинство изменений связано со сцеплением кода в менеджера по сервису правильно. После того, как сделанный, Вы будете знать, что любыми проблемами, которые происходят, является результат Вашего программирования и не любой другой программы.

87
задан 3 revs, 2 users 97% 23 January 2018 в 08:27
поделиться

2 ответа

Проверьте модуль inspect:

inspect.stack ( ) вернет информацию о стеке.

Внутри функции inspect.stack () [1] вернет стек вашего вызывающего. Оттуда вы можете получить дополнительную информацию об имени вызывающей функции, модуле и т. Д.

Подробнее см. В документации:

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

Также, У Дуга Хеллмана есть хорошая рецензия на модуль inspect в его серии PyMOTW:

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

РЕДАКТИРОВАТЬ: Вот код, который делает то, что вы хотите , Я думаю:

def info(msg):
    frm = inspect.stack()[1]
    mod = inspect.getmodule(frm[0])
    print '[%s] %s' % (mod.__name__, msg)
112
ответ дан 24 November 2019 в 07:50
поделиться

Я не рекомендую это делать, но вы можете достичь своей цели следующим способом:

def caller_name():
    frame=inspect.currentframe()
    frame=frame.f_back.f_back
    code=frame.f_code
    return code.co_filename

Затем обновите существующий метод следующим образом:

def info(msg):
    caller = caller_name()
    print '[%s] %s' % (caller, msg)
3
ответ дан 24 November 2019 в 07:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: