diff --git a/pep-0505.txt b/pep-0505.txt index e74fcac55..fffbd3266 100644 --- a/pep-0505.txt +++ b/pep-0505.txt @@ -613,13 +613,14 @@ those ideas are recorded here. The ``None``-aware syntax applies to attribute and index access, so it seems natural to ask if it should also apply to function invocation syntax. It might -be written as ``foo?()``, where ``foo`` is only called if it is not None. This -idea was quickly rejected, for several reasons. +be written as ``foo?()``, where ``foo`` is only called if it is not None. -First, no other mainstream language has such syntax. Second, Python evaluates -arguments to a function before it looks up the function itself, so -``foo?(bar())`` would still call ``bar()`` even if ``foo`` is ``None``. This -behaviour is unexpected for a so-called "short-circuiting" operator. +This has been rejected on the basis of the proposed operators being intended +to aid traversal of partially populated hierarchical data structures, *not* +for traversal of arbitrary class hierarchies. This is reflected in the fact +that none of the other mainstream languages that already offer this syntax +have found it worthwhile to support a similar syntax for optional function +invocations. ``?`` Unary Postfix Operator ~~~~~~~~~~~~~~~~~~~~~~~~~~~~