[Tutor] Should I use type hints for all new code?
Mats Wichmann
mats at wichmann.us
Fri Aug 25 12:48:48 EDT 2023
On 8/25/23 08:03, Simon Connah via Tutor wrote:
> I'm wondering if I should use type hints for new code. They make things easier to read and they stop sloppy mistakes but do they have a performance impact?
>
> I just want to know what is considered best practice these days.
"Up to you" - don't think there's really a "best practice" here, yet,
there are millions of Python programmers, with vastly different needs.
The people who do tend to use them faithfully are those explicitly
writing to share with others - writers of examples, tutorials, etc. I
suspect that gives a skewed view that they're more widely used than they
may actually be in the "real world".
They don't have a performance impact (*). They're designed as something
that is *not* evaluated at runtime, but rather by static analysis tools.
If they make you feel better, use them. If they make you more
productive, either directly in your coding, or because they give better
hints to your IDE and that helps you, use them. It's entirely voluntary,
though. For one-off small scripts, some people feel they're more
trouble than it's worth, while to others the "stating of intent" is
helpful when you go read your little (or big) program a week or a month
or a year later. If you hate them, don't use them (you've said that's
not the case!).
Advanced:
* - nothing is ever *truly* black-and-white, and that includes what I
said about no impact. they do take up some space; the hints for an
object are stored in an attribute in the object (__annotations__), and
there *is* a runtime way to introspect that. But the Python interpreter
itself does not do any type checking based on those hints.
More information about the Tutor
mailing list