Мы можем закодировать какой-то декодер ведения журнала для вызовов эхо-функций/методов, например:
def log(fn):
...
@log
def foo():
...
class Foo(object):
@log
def foo(self):
...
@log
def bar(self, a, b):
...
@log
def foobar(self, x, y, z):
...
Но что, если нам нравится записывать вызовы методов, не помещая это много @log перед каждым определением meth? Есть ли способ просто поставить один декоратор над определением класса, чтобы все его вызовы методов были украшены/записаны? Или есть некоторые другие интересные и интересные способы сделать это вместо декоратора?