Re: #def woes
Michael Higgins <[email protected]>
| Newsgroups | gmane.comp.python.cheetah |
|---|---|
| Message-ID | <[email protected]> |
On May 20, 2009, at 4:18 PM, R. Tyler Ballance wrote:
> I /think/ this should work:
> #set $faa = foo
I'm not running the latest and greatest, but that doesn't work for
me. What *does* work for me is saying
#set $faa = self.foo
Exploiting self in such an unvarnished way seems like it might be too
close to relying on an implementation detail, but maybe it's okay. I
guess Cheetah already has to guarantee not to do name-mangling or
something so that Python code can call Cheetah methods properly...
>
> Alternatively, you can use:
> #set $faa = $foo
>
> If you compile the templates with autocalling disabled
Personally, I'm not a huge fan of tweaking the compile settings a lot
for different templates. It's just one more thing that can
mysteriously break and take a long time to figure out.
To answer mobiledreamer's (later) question about what a wrapper
function would look like:
## return a callable value for $name
#def F($name)
#return $getVar($name, autoCall=False)
#end def
#set $faa = $F('foo')
... assuming the self trick isn't the preferable style. (It's
certainly shorter!)
Mike
------------------------------------------------------------------------------
Register Now for Creativity and Technology (CaT), June 3rd, NYC. CaT
is a gathering of tech-side developers & brand creativity professionals. Meet
the minds behind Google Creative Lab, Visual Complexity, Processing, &
iPhoneDevCamp asthey present alongside digital heavyweights like Barbarian
Group, R/GA, & Big Spaceship. http://www.creativitycat.com