I don’t think calling type hints experimental is accurate. They’ve been in the stable release for 4 years.
- The Theory of Type Hints - PEP 483
- Annotations - PEP 3107 - 3.0
- Type hints - PEP 484 - 3.5
- Variable annotations - PEP 526 - 3.6
- Postponed evaluation - PEP 563 - 3.7 (3.10)
- Core support - PEP 560 - 3.7
- Distribution - PEP 561 - 3.7
- Data Classes - PEP 557 - 3.7
- Literal types - PEP 586 - 3.8
- TypedDict (limit keys) - PEP 589 - 3.8
- Final qualifier - PEP 591 - 3.8
- Static duck typing - PEP 544 - 3.8
- Flexible annotations - PEP 593 - 3.9
- Type Hinting Generics In Standard Collections - PEP 585 - 3.9
type: The type of the field.
In Python 3.10, this now returns a string. In my opinion that's a bug (perhaps in the docs).I verified this using a short test program:
import dataclasses
@dataclasses.dataclass
class Apa:
bepa: int
first_field = dataclasses.fields(Apa)[0]
print(type(first_field.type))
Running with 3.9 and 3.10: $ python test.py # Python 3.9
<class 'type'>
$ python3.10 test.py
<class 'str'>
1: https://docs.python.org/3.10/library/dataclasses.html#datacl...This isn’t something sudden especially not to anyone using type annotations.