[Python-Dev] PEP 409 update [was: PEP 409 (original) (raw)
Terry Reedy tjreedy at udel.edu
Sat Feb 4 01:23:41 CET 2012
- Previous message: [Python-Dev] PEP 409 update [was: PEP 409 - final?]
- Next message: [Python-Dev] PEP 409 update [was: PEP 409 - final?]
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On 2/3/2012 9:53 AM, Yury Selivanov wrote:
Re "raise ValueError from ..."
The use cases for Ellipsis/... are 99.99% internal. The typical Python programmer will never see or have cause to worry about such a thing.
The problem is that we really want an exception attribute that is missing in certain cases. But C does not allow missing struct members (the corresponding block of memory will have some bit pattern!). So unset attributes requires a dict instead of slots (I am presuming each builting exception class uses slots now) and the use of the C equivalent of hasattr (or try: except:) and delattr.
So instead the proposal is to use a marker value that effectively means 'unset' or 'unspecified'. But what? None cannot be used because it is being used as a set value. Ethan initially proposed 'False', but then realizaed that 'True' fits as well, so neither fit. I proposed a new internal exception class primarily to get us thinking about alternatives to True/False.
Ellipsis, properly understoo, comes close to meaning 'unspecified'. My memory is that that it how it is used in NumPy slicings. The manual gives no meaning for Ellipsis, only saying that it is used in slicings. The linked slicings section does not mention it.
Ethan: I think the PEP should say more about ... being a grammatical placeholder in English, much like 'pass' is in Python. Otherwise, we will see periodic posts objecting to it in python-list.
-- Terry Jan Reedy
- Previous message: [Python-Dev] PEP 409 update [was: PEP 409 - final?]
- Next message: [Python-Dev] PEP 409 update [was: PEP 409 - final?]
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]