diff options
Diffstat (limited to 'python/qpid/__init__.py')
| -rw-r--r-- | python/qpid/__init__.py | 23 |
1 files changed, 20 insertions, 3 deletions
diff --git a/python/qpid/__init__.py b/python/qpid/__init__.py index 3f6d82b89e..7afebaf73b 100644 --- a/python/qpid/__init__.py +++ b/python/qpid/__init__.py @@ -31,8 +31,12 @@ class Struct: raise AttributeError(attr) return field - def has(self, name): - return self.type.fields.byname.has_key(name) + def exists(self, attr): + return self.type.fields.byname.has_key(attr) + + def has(self, attr): + self._check(attr) + return self._values.has_key(attr) def set(self, attr, value): self._check(attr) @@ -42,17 +46,30 @@ class Struct: field = self._check(attr) return self._values.get(attr, field.default()) + def clear(self, attr): + self._check(attr) + del self._values[attr] + def __setattr__(self, attr, value): self.set(attr, value) def __getattr__(self, attr): return self.get(attr) + def __delattr__(self, attr): + self.clear(attr) + def __setitem__(self, attr, value): self.set(attr, value) def __getitem__(self, attr): return self.get(attr) + def __delitem__(self, attr): + self.clear(attr) + def __str__(self): - return "%s %s" % (self.type.type, self._values) + return "%s %s" % (self.type, self._values) + + def __repr__(self): + return str(self) |
