[Python-ideas] "Assignment expression" with function call-alike syntax

Carl Smith carl.input at gmail.com
Wed May 23 16:43:14 EDT 2018


The name `this` is problematic as it has a well established, different
meaning
in lots of other languages. It's basically `self` for languages that assign
to it
automatically. Full stack Python users will have `this` meaning two
different
things at each end, and they cannot alias it in either of them.

I'm not sure on the feature, but thought `let` was a perfect name for it.

-- Carl Smith
carl.input at gmail.com

On 23 May 2018 at 19:48, Kirill Balunov <kirillbalunov at gmail.com> wrote:

>
>
> 2018-05-23 17:54 GMT+03:00 Mike Miller <python-ideas at mgmiller.net>:
>
>>
>> On 2018-05-22 14:32, Kirill Balunov wrote:
>>
>>>     # in global scope everything works ok since locals is globals
>>>      >>> while len( this( val = dummy() ) ) >= 0:
>>>     ...     print(val)
>>>     [0, 1]
>>>     [0, 1, 2]
>>>     [0, 1, 2, 3]
>>>
>>
>> Interesting!  Although the example with a len() and mutable default
>> arguments obscured the utility, I thought.  Also, why limit it to one
>> assignment?
>>
>>
> I just want some dummy example which can not be trivially handled with `for
> name in iter(func, value)`. But the latter is also only partly true. You
> can make something like:
>
> class P:
>     __slots__ = ('func')
>     def __init__(self, func):
>         self.func = func
>     def __eq__(self, other):
>         return not self.func(other)
>
> for val in iter(dummy, P(lambda x: len(x) < 5)):
>     print(val)
>
> [0, 1]
> [0, 1, 2]
> [0, 1, 2, 3]
>
> The only restriction is that you can not pass arguments to a `func`, but
> this, to some extent, can also be handled with lambda. I limit it to _one
> assignment_ firstly to make it simple, and secondly to get rid of some edge
> cases.
>
>
>> Liked Terry's suggestions for name.  The name that jumped into my brain
>> as I read was a reuse of the locals() or globals() callable with key words,
>> that would change their behavior to what you suggest.
>
>
> I like `this` because it is easy to follow in my opinion: " While this
> name assigned to an expression is  greater than zero do... " But of
> course I'm open to any other spelling. I'm just wondering, if someone like
> this form as an alternative for assignment expression (`:=`).
>
> With kind regards,
> -gdg
>
>
> _______________________________________________
> Python-ideas mailing list
> Python-ideas at python.org
> https://mail.python.org/mailman/listinfo/python-ideas
> Code of Conduct: http://python.org/psf/codeofconduct/
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-ideas/attachments/20180523/5266178c/attachment-0001.html>


More information about the Python-ideas mailing list