Barry Warsaw wrote: > On Wed, 2004-08-18 at 14:07, Fernando Perez wrote: > >> I'd like to argue that this form may be the most useful for common tasks, so >> you can mix and match "this is foo: $foo and this is foo.bar: $foo.bar" >> without having to worry too much about which template class you are using. > > It might be, but using attribute lookup syntax can be problematic. I > can only relate my experiences with Mailman, where I've been using > something similar for several years, albeit with traditional > %-placeholders. [...] I trust your judgment an openness on this, and indeed prudence has served python well in the past. I'd just like this to be available so I could handle a very common case like: 'a local var: $var, and some object params: $self.x, $self.y, $self.z' This can't easily be solved with the current syntax of %()s, since the namespaces for self (self.__dict__) and locals are different, and there's no attribute lookup. How about making template objects callable (or providing an eval() method)? It would allow the following: tpl = template('a var $foo') print tpl -> evaluates under the current rules, by calling __str__ but: tpl2 = template('local: $var and attr: $self.x') print tpl2() # or tpl2.eval(), or whatever other name where the call has _optional_ local/global arguments? This could satisfy the common case while allowing evaluation in restricted contexts: print tpl2(my_locals,my_globals) Anyway, just some thoughts on this... Best regards, Fernando
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4