Adding static types
In Python, a variable can be associated with objects of different types during the execution of the program. While this feature is desirable as it makes the language flexible and dynamic, it also adds significant overhead to the interpreter as it needs to look up the type and methods of the variables at runtime, making it difficult to perform various optimizations. Cython extends the Python language with explicit type declarations so that it can generate efficient C extensions through compilation.
The main way to declare data types in Cython is through cdef
statements. The cdef
keyword can be used in multiple contexts, such as variables, functions, and extension types (statically typed classes). We will see how to do this in the following subsections.
Declaring variables
In Cython, you can declare the type of a variable by prepending the variable with cdef
and its respective type. For example, we can declare the i
variable as a 16-bit integer in the following...