Evg
Фев. 14, 2010 12:16:50
можно ли внутри функции\метода узнать откуда он вызван? те из другой функции\метода или напрямую из модуля.. если да то как?
Slava
Фев. 14, 2010 13:12:32
Удобного способа нет. Можно через inspect получить стек фреймов, inspect.stack(), а дальше с помощью ф-й в inspect определить их тип.
sanook
Фев. 14, 2010 16:05:24
if __name__ == __main__
примерно так
Lexander
Фев. 15, 2010 02:22:01
sys._getframe().f_code.co_name
ds40a
Фев. 23, 2010 15:34:28
import traceback
def p1():
for s in traceback.extract_stack():
print s
def p2():
p1()
def p3():
p2()
p3()
“выхлоп”
('.\\T.PY', 13, ‘<module>’, ‘p3()’)
('.\\T.PY', 11, ‘p3’, ‘p2()’)
('.\\T.PY', 8, ‘p2’, ‘p1()’)
('.\\T.PY', 4, ‘p1’, ‘for s in traceback.extract_stack():’)