Python

Python Decorators Explained

📅 December 05, 2025 ⏱️ 1 min read 👁️ 4 views 🏷️ Python

Decorators are a powerful feature in Python that allow you to modify or enhance functions without changing their core functionality.

What is a Decorator?

A decorator is a function that takes another function and extends its behavior.


def my_decorator(func):
    def wrapper():
        print("Before function call")
        func()
        print("After function call")
    return wrapper

@my_decorator
def say_hello():
    print("Hello!")

say_hello()
# Output:
# Before function call
# Hello!
# After function call

Decorators with Arguments


def repeat(times):
    def decorator(func):
        def wrapper(*args, **kwargs):
            for _ in range(times):
                result = func(*args, **kwargs)
            return result
        return wrapper
    return decorator

@repeat(times=3)
def greet(name):
    print(f"Hello, {name}!")

greet("Alice")
# Output:
# Hello, Alice!
# Hello, Alice!
# Hello, Alice!

Practical Example: Timing Decorator


import time

def timer(func):
    def wrapper(*args, **kwargs):
        start = time.time()
        result = func(*args, **kwargs)
        end = time.time()
        print(f"{func.__name__} took {end-start:.2f} seconds")
        return result
    return wrapper

@timer
def slow_function():
    time.sleep(2)
    return "Done!"

result = slow_function()
# Output: slow_function took 2.00 seconds
🏷️ Tags:
python decorators advanced python functions

📚 Related Articles