I prefer to use tal: condition = "python: variable". That way, I can always write normal correct Python expressions without fear of the magic behavior from the default path expressions.
Path expressions will do several things, for example, invoke a variable in an expression if called. Often you are dealing with tools or content elements in the TAL that are all callable.
The most common mistake is to use tal: condition = "content_object". A content object can come from several APIs, for example, content objects will be returned to call a reference field. A directory search will return brains, but in lists that you often need to access additional attributes, so you have tal: define = "obj brain / getObject".
A call to a content object causes the object to render as if the browser requested it. Since rendering pages usually take anywhere from 500ms to 2 seconds, you render your page slower by this amount of time. If you do this in a loop of more than 25 elements, I would expect the page to take 30 seconds or more to render.
Hanno schlichting
source share