diff options
Diffstat (limited to 'Python/pywarpx/Bucket.py')
-rw-r--r-- | Python/pywarpx/Bucket.py | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/Python/pywarpx/Bucket.py b/Python/pywarpx/Bucket.py index 714516fd3..7817f8f86 100644 --- a/Python/pywarpx/Bucket.py +++ b/Python/pywarpx/Bucket.py @@ -15,13 +15,23 @@ class Bucket(object): def __init__(self, instancename, **defaults): self._localsetattr('instancename', instancename) self._localsetattr('argvattrs', {}) - self.argvattrs.update(defaults) + for name, value in defaults.items(): + self.add_new_attr(name, value) def _localsetattr(self, name, value): object.__setattr__(self, name, value) + def add_new_attr(self, name, value): + """Names starting with "_" are make instance attributes. + Otherwise the attribute is added to the args list. + """ + if name.startswith('_'): + self._localsetattr(name, value) + else: + self.argvattrs[name] = value + def __setattr__(self, name, value): - self.argvattrs[name] = value + self.add_new_attr(name, value) def __getattr__(self, name): try: |