I wrote a class that will be used to store parameters in a convenient way for etching. It overloads __setattr__ for easy access. It also uses a list to remember the order in which the attributes are added, so that the iteration order is predictable and constant. Here he is:
class Parameters(object): def __init__(self): self._paramOrder = [] def __setattr__(self, name, value): self._paramOrder.append(name) object.__setattr__(self, name, value) def __delattr__(self, name): self._paramOrder.remove(name) object.__delattr__(self, name) def __iter__(self): for name in self._paramOrder: yield self.name def iteritems(self): for name in self._paramOrder: yield name, self.name
The problem is that __init__ calls my overloaded __setattr__ to add _paramOrder to the instance dictionary. Is there a way to handle this without adding a special case to __setattr__ ?
python
BjΓΆrn pollex
source share