Skip to content Skip to sidebar Skip to footer

Passing Around An Elementtree

In my program, I need to make use of an ElementTree object in various functions in my program. More specifically, I am doing this: tree = etree.parse('somefile.xml') I am passing

Solution 1:

In Python, (eliding complexities, making an analogy for your C++ background) all objects are passed by reference. And since "tree" is an object, you're only passing the reference. Now, if you have a group of related methods that operate on the same tree, you might want to consider creating a class with that tree object as a member.

Also, here's a quick reference to the complexities I glossed over above: http://www.testingreflections.com/node/view/5126

Solution 2:

Usually what I do is parse the tree using ElementTree and then convert the whole mess into a list of objects and pass that around instead - much easier to deal with afterwards as the rest of the code doesn't have to be aware that the stuff originated from some god-awful xml file.

Solution 3:

Passing it around is definitely better than recreating it every time you want to use it. Parsing the file is an expensive operation. Here are some suggestions for performance improvements with lxml.

Post a Comment for "Passing Around An Elementtree"