@cevich I see what you mean. This is what I get from doc.python.org:
```
update() accepts either another dictionary object or an iterable of key/value pairs (as a tuple or other iterable of length two).
```
I am not sure what the other classes I need to check too. But there is another solution in my mind:
```
    def update(self, other, excpt=AttributeError):
        """
        Update properties in __all_slots__ with another dict.
        """
        _tmp_dict = dict()

        try:
            _tmp_dict.update(other)
        except TypeError, detail:
            raise excpt(detail)

        for item in _tmp_dict.keys():
            self[item] = other[item]
```