return a()
def c():
return b()
def d():
return c()
def e():
return d()
Как мне изменить поведение функции c при этом в остальном сохраняя цепочку вызовов прежней?
перепиши call
написать внутри c() какой-то код?) Либо сделать из c() декоратор
нельзя писать код внутри функции? Нельзя переписать функцию так, чтобы в ней вызывалась другая функция?
Ты сути не понял кажись. Нужно сохранить старую цепочку вызовов и написать новую где изменится поведение одной функции.
def a(): print('kek') def b(): return a() def c(): return b() def d(): return c() def e(): return d() e() def new_functional(old_functional): print('new_functional') return old_functional b.__call__ = new_functional(b.__call__) e()
Дикоратор влияет на поведение функции, а мне нужно подменить одну на другую
У тебя изначально вопрос стоял как изменить поведение функции)
Сделать что-то на подобии переопределения, но на функциях. Дикоратор не подошел бы так как менять изначальный вариант нельзя
Декоратор)))) от слова декор) А что это за задача такая?
Пробую заменить ООП функциональным программированием, чисто для кругозора
https://t.me/ru_python_beginners/1842840
я вообще не знаю че надо, спросили как вызов функции сменить, чтобы дальше всё также работало как до этого, вот так
class A: def a(self): ..... def b(self): .... def c(self): ....
Если вместо класса група функций, как изменить при вызове основной (которая вызывает остальные) работу той что в середине
как-то оно странно работает
Ты не так написал
я думал оно при вызове b() выдаст test e
Обсуждают сегодня