Написать функцию-параметрический декоратор banned(…), которой можно передавать произвольное количество объектов — «запрещённых» функций. Декорированная таким образом функция должна работать как обычно, если её не вызвала одна из запрещённых функций. В противном случае генерируется исключение RuntimeError с параметром — именем самой первой из запрещённых функций, которая привела к вызову.

   1 def banfun(a, b):
   2     return fun(a, b) * 3
   3 
   4 def nobanfun(a, b):
   5     return fun(a, b) * 2
   6 
   7 @banned(banfun)
   8 def fun(a, b):
   9     return f"{a}·{b}"
  10 
  11 for f in nobanfun, banfun:
  12     try:
  13         print(f(3, 4))
  14     except RuntimeError as E:
  15         print(E)

3·43·4
banfun


CategoryHomework

LecturesCMC/PythonIntro2025/Homework_BanFun (последним исправлял пользователь FrBrGeorge 2025-11-22 20:49:28)