
On 24.05.2016 08:08, Greg Ewing wrote:
On Mon, May 23, 2016 at 7:57 PM, Michael Selik <michael.selik@gmail.com> wrote:
def demo(arg): if p, q ?= arg.x, arg.y: # dict structure elif x ?= arg.x and isinstance(x, int) # assignment + guard elif a, b, *_ ?= arg: # tuple structure elif isinstance(arg, Mapping): # nothing new here
I'm unenthusiastic about this -- the above looks like an unreadable mess to me.
Seconded. It would be more readable to make the assignment explicit: if (p, q = arg.x, arg.y): ... but even then I find this error prone. Just think of the common typo of writing "if x = 1: ..." instead of "if x == 1: ...". This version p, q = arg.x, arg.y if (p, q): ... is just a bit more verbose, but comes without all the problems of having to allow implicit assignment-in-expression everywhere. -- Marc-Andre Lemburg eGenix.com Professional Python Services directly from the Experts (#1, May 24 2016)
Python Projects, Coaching and Consulting ... http://www.egenix.com/ Python Database Interfaces ... http://products.egenix.com/ Plone/Zope Database Interfaces ... http://zope.egenix.com/
::: We implement business ideas - efficiently in both time and costs ::: eGenix.com Software, Skills and Services GmbH Pastor-Loeh-Str.48 D-40764 Langenfeld, Germany. CEO Dipl.-Math. Marc-Andre Lemburg Registered at Amtsgericht Duesseldorf: HRB 46611 http://www.egenix.com/company/contact/ http://www.malemburg.com/