4 ms·
Only annotations which can be checked by mypy or other linters. I think cpython doesn't check them at runtime.
by dilawar 6y ago
Only annotations which can be checked by mypy or other linters. I think cpython doesn't check them at runtime.
- ben-schaaf 6y agoPython indeed doesn't check them. Really they're just syntactic sugar for what you'd otherwise put in documentation.
- throwaway894345 6y agoAnd mypy is still very immature. You can’t denote a recursive type (e.g., a JSON type) or specify a callback that takes keyword arguments. Even getting it to load type annotations from third party packages is hard in many cases. Worse, it seems to be improving at a snail’s pace if at all.
- zo1 6y agoA "JSON" type in Python is just an untyped dictionary. Is that not what you're looking for? Also, python's type-hinting supports forward-references which are what you would use for recursive or "self-referencing" types. Personally, I like the slow pace they're taking with the typing. It's touching the core usage of the language in a fundamental way and I don't think that can be rushed. We're seeing lots of community growth around the type-hinting, even using them at run-time, which is amazing to watch and marvel at.
- throwaway894345 6y agoUntyped dictionaries are a superset of JSON. JSON is (more or less) precisely: Dict[str, JSON] | List[JSON] | str | float | int | bool | None