Jon Bowlas wrote: > Ok so I changed it to this: > > attobject = context.get_attobject() > navstring = context.get_uclattribute(attobject, 'ucl_navhide') > hiddennavelements = navstring.split(' ') > for hiddennavelement in hiddennavelements: > yield hiddennavelements > > But I get the following error- Line 5: Yield statements are not allowed.
Please show us some more code -- especially the function containing and the function calling the above chunk. Generally speaking, a function terminates when execution reaches the first return statement, e. g. def f(): for i in 1, 2, 3: return i will always return 1. A generator, on the other hand, def g(): for i in 1, 2, 3: yield i will yield 1, 2, and 3, but the calling code then needs itself a for loop: for i in g(): # do something with i My guess would be that you should either modify your for loop to > attobject = context.get_attobject() > navstring = context.get_uclattribute(attobject, 'ucl_navhide') > hiddennavelements = navstring.split(' ') for hiddennavelement in hiddennavelements: # do something with hiddennavelement or just return all elements at once def some_func(): # ... attobject = context.get_attobject() navstring = context.get_uclattribute(attobject, 'ucl_navhide') return navstring.split(' ') and then operate on the items in the hiddennavelements list in the calling code: for element in some_func(): # do something with element Peter -- http://mail.python.org/mailman/listinfo/python-list