Написать функцию-параметрический декоратор banned(…), которой можно передавать произвольное количество объектов — «запрещённых» функций. Декорированная таким образом функция должна работать как обычно, если её не вызвала одна из запрещённых функций. В противном случае генерируется исключение RuntimeError с параметром — именем самой первой из запрещённых функций, которая привела к вызову.
Подмена имени функции не должна влиять на результат. Все запрещённые функции написаны на Python, то есть имеют поле .__code__.
- Замечание: я заранее этого не планировал, но на результат не влияют:
banfun.__name__ = "goodfun" после третьей строки
goodfun = banfun после третьей строки с заменой banfun на goodfun в одиннадцатой!
3·43·4 banfun
