@mkone112
Начинающий питонист.

Существует ли способ в функции A узнать что ее результат передается как аргумент в функции B?

def b(*args):
    ...


def a(*args):
    # some magick
    if called_from_b:
        print('from b')
    else:
        print('not from b')


a(1)
>> not from b
b(a(1))
>> from b
  • Вопрос задан
  • 90 просмотров
Решения вопроса 1
fox_12
@fox_12 Куратор тега Python
Расставляю биты, управляю заряженными частицами
как вариант:
import inspect

def b(*args):
    a()

def c():
    pass
    a()
    

def a(*args):
    res = inspect.getouterframes(inspect.currentframe())[1].function
    context = inspect.stack()[2].code_context[0]
    if res != '<module>' and 'a' in context:
        print(f'executed in {res}')


a()
b(a())
c()
# executed in b
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы