On Fri, Jan 31, 2003 at 12:12:55PM +0100, Elena Schulz wrote:
Hi,
I have the followong TAL-expression:
<td tal:content="structure python:here.test(myImportantCondition and myExpensiveMethod(), myExpensiveMethod(), 'myDefaultString')">myDefaultString</td>
To execute 'myExpensiveMethod()' 'myImportantCondition' must be 'true'. But I want to avoid to execute 'myExpensiveMethod()' two times. How can I achive that? As default-value myDefaultString should be served.
I've given this some thought, and it's actually rather difficult (if you want to invoke myExpensiveMethod() just once and only if myImportantCondition is true). Also most people don't seem to realize that test() doesn't do lazy evaluation - the ZPT above will *always* invoke at least once, no matter what myImportantCondition is. My advice would be to use a pythonscript. Cheers Ivo -- Drs. I.R. van der Wijk -=- Brouwersgracht 132 Amaze Internet Services V.O.F. 1013 HA Amsterdam, NL -=- T +31-20-4688336 F +31-20-4688337 Linux/Web/Zope/SQL/MMBase W http://www.amaze.nl E info@amaze.nl Network Solutions W http://vanderwijk.info E ivo@amaze.nl Consultancy PGP http://vanderwijk.info/pgp -=-