treelib
treelib copied to clipboard
Why is `_reader` a member variable instead of a local variable?
The self._reader member variable is only used in two methods of the tree class; __str__() and show(), In fact, the methods are short enough that I will just display the code below:
def __str__(self):
self._reader = ""
def write(line):
self._reader += line.decode('utf-8') + "\n"
self.__print_backend(func=write)
return self._reader
def show(self, nid=None, level=ROOT, idhidden=True, filter=None,
key=None, reverse=False, line_type='ascii-ex', data_property=None):
self._reader = ""
def write(line):
self._reader += line.decode('utf-8') + "\n"
try:
self.__print_backend(nid, level, idhidden, filter,
key, reverse, line_type, data_property, func=write)
except NodeIDAbsentError:
print('Tree is empty')
print(self._reader)
I am wondering why _reader is a member variable at all, and not simply a local variable. In both functions, _reader is initialized to be the empty string, so its previous contents are wiped out.
I agree with that