El lun, 17 ene 2022 a las 6:25, Petr Viktorin (email@example.com) escribió:
On Wed, Nov 17, 2021 at 8:31 AM Pradeep Kumar Srinivasan firstname.lastname@example.org wrote:
This PEP  introduces a simple and intuitive way to annotate methods
and classmethods that return an instance of their class. Such methods and classmethods occur quite frequently, but the existing way to annotate them correctly is quite arcane and error-prone. The PEP introduces a special type `Self` to represent the type of the `self` parameter, similar to the `this` type in TypeScript and the `Self` type in Rust. We have implementations for mypy and pyright. The PEP does not affect CPython directly except for the addition of one special form (Self) to typing.py .
Since we have reached consensus on the PEP in typing-sig , we wanted
to get your comments and suggestions before submitting to the Steering Council.
Thanks, Pradeep Kumar Srinivasan James Hilton-Balfe
: Adding `Self` to typing_extensions.py:
: See the comments from typing-sig members on the Google doc:
Hello, and thanks for the PEP! Sorry I'm late, but I have two curious questions about the PEP. I don't think they should hold back accepting the PEP, but I'm interested in the answers.
The PEP uses `reveal_type`, a function that's appeared in a few PEPs already, but was never described. Is it a standard function in typing tools, something specific to mypy, or pseudocode?
It's a function that doesn't exist at runtime, but when a type checker sees a call, it emits the inferred type of the argument. It originated with mypy but I believe has been adopted by all type checkers.
There's been some talk of adding it to the `typing` module, but that hasn't happened so far. I opened https://bugs.python.org/issue46414 to suggest adding it.
The PEP says "we reject Self in metaclasses." "Metaclass" can mean "subclass of `type`", or it can refer to how a value is used -- for example, you can write `class Foo(metaclass=print): ...`. In the PEP's example, is MyMetaclass rejected because:
- it's used as a metaclass in a class statement, or
- it's a subclass of `type` (so it's rejected even if unused), or
- it becomes a class of a class?
Or is the exact interpretation best left to the type checker? _______________________________________________ Python-Dev mailing list -- email@example.com To unsubscribe send an email to firstname.lastname@example.org https://mail.python.org/mailman3/lists/python-dev.python.org/ Message archived at https://email@example.com/message/DVOQK3U6... Code of Conduct: http://python.org/psf/codeofconduct/