python - How can I better structure this code? -


i have lxml.objectify data structure restful web service. need change setting if exists , create if doesn't. right have along lines of following, feel it's ugly. structure i'm looking in has list of subelements have same structure, can't specific tag unfortunately.

thing_structure = lxml.objectify(get_from_rest_service()) found_thing = false if thing_structure.find('settings') not none:     i, foo in enumerate(thing_structure.settings):         if foo.is_what_i_want:             modify(thing_structure.settings[i])             found_thing = true if not found_thing:     new = lxml.etree.subelement(thing_structure, 'setting')     modify(new)  send_to_rest_service(thing_structure) 

overall, structure isn't bad (assuming need call modify on 1+ items in settings -- if "just one", i.e., if is_what_i_want flag going set 1 setting @ most, that's of course different, , should use break for loop -- that's not impression of intentions q, please clarify if i've mistead!). there's 1 redundancy:

for i, foo in enumerate(thing_structure.settings):     if foo.is_what_i_want:         modify(thing_structure.settings[i])         found_thing = true 

having i , using again same foo no use here, can simplify to:

for foo in thing_structure.settings:     if foo.is_what_i_want:         modify(foo)         found_thing = true 

you'd need index if rebind item, i.e., perform assignment such thing_structure.settings = whatever. (btw, name other foo wouldn't hurt;-).


Comments

Popular posts from this blog

c++ - Convert big endian to little endian when reading from a binary file -

gdi+ - WxWidgets draw a bitmap with opacity -

C#: Application without a window or taskbar item (background app) that can still use Console.WriteLine() -