aboutsummaryrefslogtreecommitdiff
path: root/Python/pywarpx/Bucket.py
diff options
context:
space:
mode:
Diffstat (limited to 'Python/pywarpx/Bucket.py')
-rw-r--r--Python/pywarpx/Bucket.py14
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: