HTML helper objects do not support the + operator (they don't have an __add__ method). Your example works because you are concatenating an HTML helper object with an XML object, and the XML object does support the + operator -- it does so by calling the __str__ method of both objects and concatenating the strings (via Python's string formatting syntax). If you replace var2 with TD("bbbb"), you'll get a syntax error instead of a string returned. If you want to concatenate two (or more) helper objects together without putting them inside another helper object and without first converting them to strings, you can put them inside an empty TAG object: TAG[''](var1, var2) Anthony
On Tuesday, June 28, 2011 9:17:38 AM UTC-4, apple wrote: > If I try to concatenate a TD and an XML using += then I end up with a > string. Why is that? > > e.g. > > var1=TD("aaaa") > var2=XML("bbbb") > print(type(var1)) > print(type(var2)) > var1+=var1 > print(type(var1)) > > ===> TD, XML, string On Tuesday, June 28, 2011 9:17:38 AM UTC-4, apple wrote: > > If I try to concatenate a TD and an XML using += then I end up with a > string. Why is that? > > e.g. > > var1=TD("aaaa") > var2=XML("bbbb") > print(type(var1)) > print(type(var2)) > var1+=var1 > print(type(var1)) > > ===> TD, XML, string