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 this tree around in my program.
I was wondering whether this is a good approach, or can I do this:
- Create a global tree (I come from a
C++ background and I know global is
bad) - Create the tree again wherever required.
Or is my approach ok?
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