What is a Python decorator?

QuestionsQuestions8 SkillsProDec, 20 2025
0160

Hello! I'm Labby, and I'm happy to help you understand this concept!

In simple terms, a Python decorator is a way to "wrap" a function with another piece of code. It allows you to add new functionality to an existing function without permanently changing its internal source code.

Think of it like putting a gift in a box:

  • The original function is the gift.
  • The decorator is the gift box and the wrapping paper.
  • When you "open" the gift (call the function), you see the wrapping (extra code) first, then the gift inside.

Key Characteristics:

  1. Functions as Arguments: A decorator is a function that takes another function as an input.
  2. Inner Function (Wrapper): Inside the decorator, we define a "wrapper" function that adds the extra behavior (like printing a message) and then calls the original function.
  3. Returns a Function: The decorator returns this new "wrapper" function.
  4. Syntactic Sugar (@): Python uses the @ symbol (called the pie syntax) to make it easy to apply decorators.

From your current lab example:

# The Decorator
def your_decorator(func):
  def wrapper():
    print("Before func!") # Extra behavior before
    func()                # The original function call
    print("After func!")  # Extra behavior after
  return wrapper

# Applying the Decorator
@your_decorator
def foo():
  print("Hello World!")

When you call foo(), you aren't running the original foo directly anymore; you are actually running the wrapper function created by your_decorator.

This is very useful in real-world programming for tasks like logging, checking user permissions, or timing how long a function takes to run!

Does that help clarify things? You can try running the code in step1.py to see it in action!

0 Comments

no data
Be the first to share your comment!