Python static typing
Posted on Sun 26 June 2016 in misc
Normally in Python if you create a variable i
as an integer, you can later assign a a string value. i
just points to some data of some type in memory and can be re-assigned at will.
This can make it hard to reason about code. Is the input to this function a float
or an integer
? A list
or an array
?
With static typing a variable can't change its type and it can make reasoning about some code easier. If you know that i
is an integer and you know that no-matter what, it will never become a float, then you can always use i
as an index. With true static typing, you will even get an error if you try and change i
.
In Python you can annotate type and you can have a script check if these annotations are violated at any point in code, as a sort of pre-execution sanity check.
Here is how it works:
from typing import List
def myfunction(list_of_int:List[int], floatingpoint:float) -> bool:
""" This function takes a list of integers and a
floating point number and returns a boolean """
return True