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

Creating a simple custom data type

Until the preceding section, we looked at adding explicit type checks and converting generic type variables into specific types to handle specific data needs we might get while programming an application, and we also added errors to help debug incorrect data types assigned to variables.

In this section, let’s look at creating our own simple data types and what will be required to do so. First of all, let’s answer the question of why we need our own data types. Any custom data type is a derivation of basic data types in Python along with certain variations to fulfill the purpose of our data needs in an application. Any data type will have its own set of operations that can be performed on top of the data of that specific type. For instance, an integer data type will support arithmetic operations such as addition, subtraction, multiplication, and division. Similarly, a string supports concatenation in the place of addition, and so...