Book Image

Metaprogramming with Python

By : Sulekha AloorRavi
Book Image

Metaprogramming with Python

By: Sulekha AloorRavi

Overview of this book

Effective and reusable code makes your application development process seamless and easily maintainable. With Python, you will have access to advanced metaprogramming features that you can use to build high-performing applications. The book starts by introducing you to the need and applications of metaprogramming, before navigating the fundamentals of object-oriented programming. Next, you will learn about simple decorators, work with metaclasses, and later focus on introspection and reflection. You’ll also delve into generics and typing before defining templates for algorithms. As you progress, you will understand your code using abstract syntax trees and explore method resolution order. This Python book also shows you how to create your own dynamic objects before structuring the objects through design patterns. Finally, you will learn simple code-generation techniques along with discovering best practices and eventually building your own applications. By the end of this learning journey, you’ll have acquired the skills and confidence you need to design and build reusable high-performing applications that can solve real-world problems.
Table of Contents (21 chapters)
1
Part 1: Fundamentals – Introduction to Object-Oriented Python and Metaprogramming
4
Part 2: Deep Dive – Building Blocks of Metaprogramming I
11
Part 3: Deep Dive – Building Blocks of Metaprogramming II

Exploring type for dynamic objects

In this section, let’s explore the function named type from the perspective of dynamic object creation. Why do we need to create an object dynamically? Let’s consider the scenarios where we want to change the attributes of the class only for specific instances/objects of the class and not for the original class itself. In such scenarios, we can create dynamic objects for the class and define the attributes of the class dynamically within the specific dynamic object and not for the whole class itself.

In multiple chapters throughout this book, we have looked at the various uses of the type function. In this chapter, we will look at how to use type to dynamically create Python objects.

Let’s look at the graphical representation of the signature of the type function in Python in the following screenshot:

Figure 11.1 – Signature of type

The type function accepts a self-object followed by a tuple...