Syntax:
#set [global] $var = EXPR
#set
is used to create and update local variables at run time.
The expression may be any Python expression.
Remember to preface variable names with $ unless they're part of an
intermediate result in a list comprehension.
Here are some examples:
#set $size = $length * 1096 #set $buffer = $size + 1096 #set $area = $length * $width #set $namesList = ['Moe','Larry','Curly'] #set $prettyCountry = $country.replace(' ', ' ')
#set
variables are useful to assign a short name to a
$deeply.nested.value
, to a calculation, or to a printable version of
a value. The last example above converts any spaces in the 'country' value
into HTML non-breakable-space entities, to ensure the entire value appears on
one line in the browser.
#set
variables are also useful in #if
expressions, but
remember that complex logical routines should be coded in Python, not in
Cheetah!
#if $size > 1500 #set $adj = 'large' #else #set $adj = 'small' #end if
#set $adj = $size > 1500 and 'large' or 'small'
#if
will not work for this, since it
produces output rather than setting a variable.
You can also use the augmented assignment operators:
## Increment $a by 5. #set $a += 5
By default, #set
variables are not visible in method calls or include
files unless you use the global
attribute: #set global $var =
EXPRESSION
. Global variables are visible in all methods, nested templates and
included files. Use this feature with care to prevent surprises.