28.11.17 22:31, Raymond Hettinger пише:
I also cc python-dev to see if anybody here is strongly in favor or against 
this inclusion.

Put me down for a strong -1.   The proposal would occasionally save a few 
keystokes but comes at the expense of giving Python a more Perlish look and a 
more arcane feel.

One of the things I like about Python is that I can walk non-programmers through the code 
and explain what it does.  The examples in PEP 505 look like a step in the wrong 
direction.  They don't "look like Python" and make me feel like I have to 
decrypt the code to figure-out what it does.

     timeout ?? local_timeout ?? global_timeout
     'foo' in (None ?? ['foo', 'bar'])
     requested_quantity ?? default_quantity * price
     name?.strip()[4:].upper()
     user?.first_name.upper()

New syntax often look unusual. "lambda" and "yield" also didn't "look like Python".

But there are other considerations.

1. Languages that has the ?? and ?. operators usually have a single special (or at least a one obvious) value that is served for signaling "there-is-no-a-value". The None in Python is not so special. It can be used as a common object, and other ways can be used for denoting an "absent" value. The need of None-specific operators in Python is lower.

2. Python already have other ways for handling "absent" values: the short-circuit "or" and "and" operators which return the one of arguments, getattr() with the default value, the hack with default class attributes, exception handling. The need of the proposed operators in Python is lower.

3. These languages usually have borrowed the syntax of the ternary operator from C: "... ? ... : ...". Thus the syntax with "?" looks more natural in them. But in Python it looks less natural.

I'm -1 for accepting this syntax in 3.7. In future all can be changed.

_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to