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 »
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------------------)

# Day 01: The typing mental model &`from __future__`
[](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
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------------------)

# Day 01: The typing mental model &`from __future__`
[](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
DeepCamp AI