Is `?=` an operator? One could define `a ?= b` as `if a is None: a = b`
(which is similar to make's operator, for example). Compare:

    def func(arg, option=None):
        option ?= expr
        #impl

instead of:

    def func(arg, option=None):
        if option is None:
            option = expr
        #impl

    def func(arg, option=None):
        if option is None: option = expr
        #impl

    def func(arg, option=None):
        option = expr if option is None else option
        #impl

    def func(arg, option=None):
        option = option if option is not None else expr
        #impl

or the proposed:

    def func(arg, option?=expr):
        #impl

One could argue that the OP proposal is cleaner, but it adds *another* special
notation on function definition.

On performance, this would have tobe evaluated most likely upon entering the 
call.
With the `if` guards or a hypothetical `?=` assignment, the programmer can 
better
control execution (other arguments and/or options may render the test 
irrelevant).

The great disadvantage of the `if` guard is a line of screen and an identation 
level,
(which reminds me of PEP 572 rationale).

I don't really like this `?=` assignment aesthetically, but I have written code 
that
would look cleaner with it (though beauty is the eye of the beholder).

Implementing only this operator would be at least simpler than both OP proposal
and full PEP 505 (see also Neil Girdhar post above).
_______________________________________________
Python-ideas mailing list -- python-ideas@python.org
To unsubscribe send an email to python-ideas-le...@python.org
https://mail.python.org/mailman3/lists/python-ideas.python.org/
Message archived at 
https://mail.python.org/archives/list/python-ideas@python.org/message/ZJIEQAS3MG7OZG3VN5OTU27GCEGGLAO7/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to