Я на самом деле пытаюсь сделать это на Java, но я нахожусь в процессе обучения самому питону, и это заставляет меня задаться вопросом, существует ли простой / умный способ сделать это с помощью упаковщиков или что-то в этом роде.
Я хочу знать, сколько раз определенный метод вызывался внутри другого метода. Например:
def foo(z):
#do something
return result
def bar(x,y):
#complicated algorithm/logic involving foo
return foobar
Так что для каждого вызова bar с различными параметрами я хотел бы знать, сколько раз вызывался foo, возможно, с таким выводом:
>>> print bar('xyz',3)
foo was called 15 times
[results here]
>>> print bar('stuv',6)
foo was called 23 times
[other results here]
edit: Я понимаю, что могу просто щелкнуть счетчик внутри бара и сбросить его, когда вернусь, но было бы здорово, если бы была какая-то магия, которую вы могли бы сделать с обертками, чтобы выполнить то же самое. Это также означало бы, что я мог бы использовать те же самые обертки где-нибудь еще без необходимости изменять какой-либо код внутри метода.