[Python-ideas] Fwd: About calling syntax

Zaur Shibzoukhov szport at gmail.com
Thu Sep 11 09:53:55 CEST 2008

Returning to initial topic of my posts I said about calling function
in the case:

class Element(object):
    def __init__(self, name, *args, **kw):

I tried to find more natural form of initializing such tree-like
structures in python.
In current syntax the only available form (which is natural to me) is:

   x='1', y='2', *[
      x='1', y='2', *[
      Element(''grandchild1', x='4', y='6'),
      Element(''grandchild2', x='7', y='8')
   Element(''grandchild1', x='4', y='6')

I hoped that python calling syntax could be extended in order to allow
writing such initializaing code without *[ ... ]

Best regards.

2008/9/10 Blake Winton <bwinton at latte.ca>:
> Zaur Shibzoukhov wrote:
>> 2008/9/10 Bruce Leban <bruce at leapyear.org <mailto:bruce at leapyear.org>>
>>    I'm sure there are scenarios where this is useful but I think in
>>    general it would be less readable. As it is, I can't miss a
>>    positional argument in the middle of a long list of keyword arguments:
>>    foo(a=b,c=d,e=f,g=h,i=j,k=l,m)
>> But programmer could select most readable form of function call (as the
>> case may be).
> But some of them wouldn't, and I would have to learn all the forms of
> function call to read other people's code.  Additional forms are easy for
> the writer, but hard for the reader, and I read far more code than I write.
> To say it a different way, programmers _could_ write easy-to-understand
> Perl, but they can also write hard-to-understand Perl, and in my experience
> when presented with that choice, most of them choose the hard-to-understand
> route.  ;)
> Later,
> Blake.

More information about the Python-ideas mailing list