Day 01: The typing mental model & from __future__

📰 Medium · Python

By the end of this article, you should be able to answer, with confidence, any question about how Python annotations behave at runtime… Continue reading on Medium »

Published 6 May 2026

Full Article

Title: Day 01: The typing mental model & from __future__

URL Source: https://ianisharya.medium.com/day-01-the-typing-mental-model-from-future-b58b6a9734da?source=rss------python-5

Published Time: 2026-05-06T07:50:57Z

Markdown Content:
# Day 01: The typing mental model & from __future__ | by Anish Arya | May, 2026 | Medium

[Sitemap](https://ianisharya.medium.com/sitemap/sitemap.xml)

[Open in app](https://play.google.com/store/apps/details?id=com.medium.reader&referrer=utm_source%3DmobileNavBar&source=post_page---top_nav_layout_nav-----------------------------------------)

Sign up

[Sign in](https://medium.com/m/signin?operation=login&redirect=https%3A%2F%2Fianisharya.medium.com%2Fday-01-the-typing-mental-model-from-future-b58b6a9734da&source=post_page---top_nav_layout_nav-----------------------global_nav------------------)

[](https://medium.com/?source=post_page---top_nav_layout_nav-----------------------------------------)

Get app

[Write](https://medium.com/m/signin?operation=register&redirect=https%3A%2F%2Fmedium.com%2Fnew-story&source=---top_nav_layout_nav-----------------------new_post_topnav------------------)

[Search](https://medium.com/search?source=post_page---top_nav_layout_nav-----------------------------------------)

Sign up

[Sign in](https://medium.com/m/signin?operation=login&redirect=https%3A%2F%2Fianisharya.medium.com%2Fday-01-the-typing-mental-model-from-future-b58b6a9734da&source=post_page---top_nav_layout_nav-----------------------global_nav------------------)

![Image 1](https://miro.medium.com/v2/resize:fill:32:32/1*dmbNkD5D-u45r44go_cf0g.png)

# Day 01: The typing mental model &`from __future__`

[![Image 2: Anish Arya](https://miro.medium.com/v2/resize:fill:32:32/1*5_urzV36byxHCkIqt9Vm1g.jpeg)](https://ianisharya.medium.com/?source=post_page---byline--b58b6a9734da---------------------------------------)

[Anish Arya](https://ianisharya.medium.com/?source=post_page---byline--b58b6a9734da---------------------------------------)

Follow

20 min read

·

Just now

[](https://medium.com/m/signin?actionUrl=https%3A%2F%2Fmedium.com%2F_%2Fvote%2Fp%2Fb58b6a9734da&operation=register&redirect=https%3A%2F%2Fianisharya.medium.com%2Fday-01-the-typing-mental-model-from-future-b58b6a9734da&user=Anish+Arya&userId=65653dbef5ac&source=---header_actions--b58b6a9734da---------------------clap_footer------------------)

[](https://medium.com/m/signin?actionUrl=https%3A%2F%2Fmedium.com%2F_%2Fbookmark%2Fp%2Fb58b6a9734da&operation=register&redirect=https%3A%2F%2Fianisharya.medium.com%2Fday-01-the-typing-mental-model-from-future-b58b6a9734da&source=---header_actions--b58b6a9734da---------------------bookmark_footer------------------)

[Listen](https://medium.com/m/signin?actionUrl=https%3A%2F%2Fmedium.com%2Fplans%3Fdimension%3Dpost_audio_button%26postId%3Db58b6a9734da&operation=register&redirect=https%3A%2F%2Fianisharya.medium.com%2Fday-01-the-typing-mental-model-from-future-b58b6a9734da&source=---header_actions--b58b6a9734da---------------------post_audio_button------------------)

Share

By the end of this article, you should be able to answer, with confidence, _any_ question about how Python annotations behave at runtime, because every later day (generics, `ParamSpec`, decorator typing, profiling) depends on the mental model we're building right now.

We’ll go in layers. Each layer is a complete idea you can run code against.

Roadmap → [https://medium.com/@ianisharya/18-day-curriculum-advanced-typing-decorators-profiling-with-capstone-project-2d1e706d615f](https://medium.com/@ianisharya/18-day-curriculum-advanced-typing-decorators-profiling-with-capstone-project-2d1e706d615f)

## **Layer 0: What problem are**`type hints`**even solving?**

Python is dynamically typed. That means a variable doesn’t have a type; _the value bound to a name_ has a type, and you can rebind the name to a different type at any moment:

x = 1 # x refers to an int

x = "hello" # now x refers to a str - Python does not care

x = [1, 2, 3] # no
Read full article → ← Back to Reads