Найти - Пользователи
Полная версия: Вернуть имя метода и содержащего его модуля из метода.
Начало » Python для новичков » Вернуть имя метода и содержащего его модуля из метода.
1
timas
Здравствуйте.
Есть к примеру модуль module.py, в нем есть def request:, не знаю как правильно назвать это в терминологии Python метод наверное. В теле этого def request: нужно вытащить имя самого себя (метода) а также имя модуля. Я конечно знаю как они называются, просто это потребуется еще во многих местах, хотелось бы кодом, в C# что-то наподобие this.name.
ZAN
import inspect


def request():
print inspect.getframeinfo(inspect.currentframe())

if __name__ == '__main__':
request()


('E:\\projects\\doctests_vs_unittests\\module.py', 5, 'request', [' print inspect.getframeinfo(inspect.currentframe())\n'], 0)
timas
Спасибо.
ZAN
timas
в C# что-то наподобие this.name.
Возможно, имеет смысл функциональность, завязанную на именах, вынести в декораторы:
def inspect_dec(func):
def new_func(*args, **kwargs):
'''do something with function's and module's names'''
print func.__name__
print func.__module__
return func(*args, **kwargs)
return new_func

@inspect_dec
def request():
print 'Hello'
Если имя функции и модуля нужны только для логгинга, то стандартный логгер уже умеет это делать -> см. logger.findCaller()
timas
Спасибо, попозже попробую.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB