define: Define variables


tal:define syntax:

      argument       ::= define_scope [';' define_scope]*
      define_scope   ::= (['local'] | 'global') define_var
      define_var     ::= variable_name expression
      variable_name  ::= Name

*Note: If you want to include a semi-colon (;) in an expression, it must be escaped by doubling it (;;).*


The tal:define statement defines variables. You can define two different kinds of TAL variables: local and global. When you define a local variable in a statement element, you can only use that variable in that element and the elements it contains. If you redefine a local variable in a contained element, the new definition hides the outer element's definition within the inner element. When you define a global variables, you can use it in any element processed after the defining element. If you redefine a global variable, you replace its definition for the rest of the template.

Note: local variables are the default

If the expression associated with a variable evaluates to nothing, then that variable has the value nothing, and may be used as such in further expressions. Likewise, if the expression evaluates to default, then the variable has the value default, and may be used as such in further expressions.


Defining a global variable:

      tal:define="global company_name string:Zope Corp, Inc."

Defining two variables, where the second depends on the first:

      tal:define="mytitle template/title; tlen python:len(mytitle)"