Paul Moore wrote: > I think the key difference with macros is that they act at compile > time, not at run time. There is no intention here to provide any form > of compile-time processing, and that makes all the difference. > > What I feel is the key concept here is that of "injecting" code into a > template form (try...finally, or try..except..else, or whatever) [1]. > This is "traditionally" handled by macros, and I see it as a *good* > sign, that the discussion has centred around runtime mechanisms rather > than compile-time ones. > > [1] Specifically, cases where functions aren't enough. If I try to > characterise precisely what those cases are, all I can come up with is > "when the code being injected needs to run in the current scope, not > in the scope of a template function". Is that right?
That doesn't hold if the code being injected is a single Python expression, since you can put an expression in a lambda and code the template as a function. I would say you need a block template when the code being injected consists of one or more statements that need to run in the current scope. Shane _______________________________________________ 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