On Thu, Feb 13, 2014 at 8:18 AM, Nir <nircher...@gmail.com> wrote: > class FileInfo(UserDict): > def __init__(self, filename=None): > UserDict.__init__(self) > self["name"] = filename > > I get a TypeError: 'FileInfo' object doesn't support item assignment . > > Am I missing something?
You can't use square-brackets notation like that, unless you've written your class specifically to handle it. More likely, what you want is one of: self.name = filename self.dict["name"] = filename Also, the same problem will occur with the UserDict, which tries to update itself rather than its dict. Actually, a simpler solution might be to have UserDict inherit from dict. I'm not sure what you're trying to achieve here; more detail would help. But if UserDict really is a dict, then you can call self.update, and you can use square-brackets item assignment. I've no idea what you'd gain over just using a dict though. ChrisA -- https://mail.python.org/mailman/listinfo/python-list