def foo1(): a = bytes(range(30, 40)) print(type(2.0 + 3)) def my_decorator(func): def wrapper(*args, ** kwargs): print('Running function:', func.__name__) print('Positional arguments:', args) print('Keyword arguments:', kwargs) result = func(*args, **kwargs) print('Result:', result) return result return wrapper @my_decorator def add_ints(a, b): return a + b # @my_decorator def foo2(): print('My function') # foo3 = my_decorator(foo2) # add_ints(1, 2) def foo3(): a = [1, 2, 3] try: print(a[4]) except Exception as e: print("Error:", e) foo3()