Member-only story

Metaprogramming in Python

Elshad Karimov
2 min readMar 25, 2024
Photo by Clément Hélardot on Unsplash

Metaprogramming in Python refers to the concept of writing code that manipulates code. It allows you to modify or generate code at runtime, enabling dynamic creation or customization of classes and functions. This powerful feature can make your programs more flexible and reduce code duplication. Here’s an example to illustrate metaprogramming in Python:

Example: Using Decorators for Metaprogramming

A common metaprogramming technique in Python involves the use of decorators. Decorators allow you to modify the behavior of a function or method. They are a clear example of how Python supports metaprogramming by allowing runtime modifications of code.

def my_decorator(func):
def wrapper(*args, **kwargs):
print("Something is happening before the function is called.")
result = func(*args, **kwargs)
print("Something is happening after the function is called.")
return result
return wrapper

@my_decorator
def say_hello(name):
print(f"Hello, {name}!")

say_hello("Alice")

In this example, my_decorator is a function that takes another function (func) as its argument and defines a nested function (wrapper). The wrapper function adds some behavior (printing messages) before and after calling func. The decorator is applied to say_hello using the @my_decorator

--

--

Elshad Karimov
Elshad Karimov

Written by Elshad Karimov

Software Engineer, Udemy Instructor and Book Author, Founder at AppMillers

Responses (1)