I myself found out abotu this restriction once I clashesd into it- soit was one time the restriction bit me back. But I can't remember if that was for intended production code or for toying around either.
Anyway, a simple "nop" function can allow for any arbitrary expression to be used as decorator, at expense of a little more line noise. And the restriction prevents the line noise to emerge as "cool" in some framework that mitg take inspiration in trends ongoing in other languages. nop = lambda f: f @nop(MyClass(things)[dimension1, dimension2[subdimension5]] + CombinableAutoMixinDecoFactory()) def my_func(): pass On 18 September 2017 at 18:33, Éric Araujo <mer...@netwok.org> wrote: > Hello, > > Le 2017-09-16 à 07:22, Serhiy Storchaka a écrit : >> 16.09.17 12:39, Larry Hastings пише: >>> So why don't decorators allow arbitrary expressions? [...] >> >> Actually I remember somebody raised this question a year or two ago,> but >> don't remember details. > > The discussion I remember was https://bugs.python.org/issue19660 > > Guido said: «Nobody has posted a real use case. All the examples are > toys. What are the real use cases that are blocked by this? Readability > counts!» > > Cheers > _______________________________________________ > Python-Dev mailing list > Python-Dev@python.org > https://mail.python.org/mailman/listinfo/python-dev > Unsubscribe: > https://mail.python.org/mailman/options/python-dev/jsbueno%40python.org.br _______________________________________________ Python-Dev mailing list Python-Dev@python.org https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com