Форум сайта python.su
Здравствуйте.
Есть к примеру модуль module.py, в нем есть def request:, не знаю как правильно назвать это в терминологии Python метод наверное. В теле этого def request: нужно вытащить имя самого себя (метода) а также имя модуля. Я конечно знаю как они называются, просто это потребуется еще во многих местах, хотелось бы кодом, в C# что-то наподобие this.name.
Офлайн
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Возможно, имеет смысл функциональность, завязанную на именах, вынести в декораторы:
в 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'
Отредактировано (Сен. 19, 2008 12:57:28)
Офлайн
Спасибо, попозже попробую.
Офлайн