Для функции-оболочки почему бы не сработать следующий подход:
# 3. DISALLOW EXECUTION IN MAIN
def disallow_main(func):
if __name__ == '__main__':
raise RuntimeError("Cannot run from main.")
return func
@disallow_main
def echo(prompt='-> '):
_inp = input(prompt)
print ("ECHO: %s" % _inp)
То есть почему он поднимается до определения функции? Как правильно сконструировать пленку?
inspect.currentframe(1).f_globals['__name__']
(это1
, возможно, должно быть выше, чтобы получить правильный фрейм стека). 28.10.2019