diff options
Diffstat (limited to 'python/qpid/__init__.py')
| -rw-r--r-- | python/qpid/__init__.py | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/python/qpid/__init__.py b/python/qpid/__init__.py index 4aeccae38e..3f6d82b89e 100644 --- a/python/qpid/__init__.py +++ b/python/qpid/__init__.py @@ -31,13 +31,28 @@ class Struct: raise AttributeError(attr) return field - def __setattr__(self, attr, value): + def has(self, name): + return self.type.fields.byname.has_key(name) + + def set(self, attr, value): self._check(attr) self._values[attr] = value - def __getattr__(self, attr): + def get(self, attr): field = self._check(attr) return self._values.get(attr, field.default()) + def __setattr__(self, attr, value): + self.set(attr, value) + + def __getattr__(self, attr): + return self.get(attr) + + def __setitem__(self, attr, value): + self.set(attr, value) + + def __getitem__(self, attr): + return self.get(attr) + def __str__(self): return "%s %s" % (self.type.type, self._values) |
