Написать декоратор, который, если применить его к функции, выводит сообщение при запуске функции и при ее окончании, причем во втором указано общее время работы функции.
Если же применить его к классу, то там должны вести себя все методы класса.
@profile
def foo:
pass
@profile
class Bar:
def __init__(self):
pass
foo()
Bar()
Вывод:
`foo` started
`foo` finished in 0.01s
`Bar.__init__` started
`Bar.__init__` finished in 0.01s
"# profile"