this post was submitted on 26 Jul 2023
0 points (NaN% liked)

Python

6337 readers
9 users here now

Welcome to the Python community on the programming.dev Lemmy instance!

📅 Events

PastNovember 2023

October 2023

July 2023

August 2023

September 2023

🐍 Python project:
💓 Python Community:
✨ Python Ecosystem:
🌌 Fediverse
Communities
Projects
Feeds

founded 1 year ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
[–] rglullis@communick.news 0 points 1 year ago (1 children)

The key part is this:

it turns out protocols really are just a formalization of Python's duck typing.

Meaning, this is just a way to say that if you are defining some system that needs to conform with some interface, you can have type checked even if your have different objects from different classes. No need for TypeVar or define a crazy hierarchy: as long as the types implements the methods defined by the Protocol, the type checker will be happy.

[–] bleistift2@feddit.de 0 points 1 year ago* (last edited 1 year ago)

It’s amazing how often people celebrate some new feature in a language and I’m like: TypeScript has been doing this for years now.

[Edit: This is also how interfaces work in Go, and it’s just the old advice “Code against interfaces, not classes.”]