ANNOUNCE: Thesaurus - a recursive dictionary subclass using attributes

Ian Kelly ian.g.kelly at gmail.com
Wed Dec 12 21:42:36 CET 2012


On Wed, Dec 12, 2012 at 12:20 PM, Dave Cinege <dave at cinege.com> wrote:
> On Tuesday 11 December 2012 01:41:38 Ian Kelly wrote:
>
>> I have a few critiques on the code.  First, you might want to use
>> __getattribute__ instead of __getattr__.  Otherwise you'll end up
>
>   File "/home/dcinege/src/thesaurus/thesaurus.py", line 84, in
> __getattribute__
>     return self.__getitem__(name)
> RuntimeError: maximum recursion depth exceeded while calling a Python object
>
> This takes me into the same hell as when I was trying to implement this as a
> class. Someone else would have to take the time to do this. __getattr__ doing
> what I expect it to do, for what i do.

def __getattribute__(self, name):
    if name.startswith('__') and name.endswith('__'):
        return super(Thesaurus, self).__getattribute__(name)
    return self.__getitem__(name)



More information about the Python-list mailing list