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

Python

7099 readers
45 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 2 years ago
MODERATORS
 

A blog post on choosing more specific types rather than general ones like list and dict.

top 3 comments
sorted by: hot top controversial new old
[–] [email protected] 1 points 2 years ago

If you don't need to reuse the collection or access its items out of order, you can also use Iterable which accepts even more inputs like generators.

[–] [email protected] 1 points 2 years ago

Good point, and Łukasz Langa mentioned this in his talk (check it out). He names it the robustness principle, in his words (around 22:20 mark:

"Vague in what you accept, concrete in what you return"

But he also mentions some gotchas like how Iterable[str] can backfire, because str is also an Iterable[str] and it might be better to use list[str].

[–] [email protected] 1 points 2 years ago

Sequence now lives at collections.abc. BTW, float is not a supertype of int (issubclass(int, float) == False). Normaly, It is acceptable to use int instead of float, but speaking of variance, it is more precise to use numbers.Real:

issubclass(Integral, Real) == True
issubclass(int, Real) == True
issubclass(float, Real) == True
issubclass(complex, Real) == False