# Dynamic typing

TODO: ADD MORE

- Python is "dynamically typed," meaning that variable names are bound to objects only, not to a particular type. You can assign `foo` to a string, and then reassign it to an `int` with no issues. Because this applies to the named parameters in function / method signatures as well Python's callables are treated as "polymorphic-by-default", even though the code may only work with a limited number of types at runtime.
