People, please note that the discussion has shifted to python-ideas and further comments should happen over there. Carl did the right thing to shift it there, although cross-posting once the conversation redirection has occurred is not needed.
hoping-google-wave-will-have-a-permanent-redirector-for-conversations-ly yrs, Brett On Wed, Sep 2, 2009 at 03:34, Carl Johnson<cmjohnson.mailingl...@gmail.com> wrote: > Crossposting to Python-ideas, > > I asked for the same change to the grammar a couple months back on > python-ideas. > > See > http://mail.python.org/pipermail/python-ideas/2009-February/thread.html#2787 > > I'm all for it, but you'll have to convince Guido that this won't > result in confusing to read code. My own examples, unfortunately did > not advance your cause, as Guido explained, "My brain hurts trying to > understand all this. I don't think this bodes well as a use case for a > proposed feature." :-D The trouble is that I was using lambdas upon > lambdas to do all kinds of Ruby block-esque tricks. OTOH, if you come > up with some simple, clear use cases though, and I think he might > still be persuadable to make a simple change to the grammar. > > > — Carl Johnson > > Rob Cliffe <rob.cli...@btinternet.com> wrote: > >> Hi All, >> This is my first post to python-dev so I will briefly introduce myself: My >> name is Rob Cliffe and I am a commercial programmer living in London, UK. I >> have some 30 years of programming experience but have only been using Python >> for a couple of years. >> First I want to say what a fantastic language Python is. It is THE best >> language for development in my opinion, and a joy to use. >> >> My specific issue: >> I eventually got my head round decorator syntax and realised that what came >> after the '@' was (basically) a function that took a function as argument >> and returned a function as result. >> However it seems to me unPythonesque (i.e. an exception to Python's normal >> consistency) that the syntax of what follows the '@' should be restricted to >> either a single (function) identifier or a single (function) identifier with >> an argument list. >> The example I tried, which seems not an unreasonable sort of thing to do, >> was along the lines of: >> >> def deco1(func): >> <deco1-suite> >> def deco2(func): >> <deco2-suite> >> >> DecoList = [deco1, deco2] >> >> @DecoList[0] # NO - CAUSES SYNTAX ERROR >> def foo(): >> pass >> >> I am sure other guys have their own examples. >> >> I am of course not the first person to raise this issue, and I see that >> Guido has a "gut feeling" against allowing a general expression after the >> '@'. >> >> BUT - a general expression can be "smuggled in" very easily as a function >> argument: >> >> def Identity(x): return x >> >> @Identity(DecoList[0]) # THIS WORKS >> def foo(): >> pass >> >> So - the syntax restriction seems not only inconsistent, but pointless; it >> doesn't forbid anything, but merely means we have to do it in a slightly >> convoluted (unPythonesque) way. So please, Guido, will you reconsider? >> >> Best wishes >> Rob Cliffe > _______________________________________________ > Python-Dev mailing list > Python-Dev@python.org > http://mail.python.org/mailman/listinfo/python-dev > Unsubscribe: > http://mail.python.org/mailman/options/python-dev/brett%40python.org > _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com