>>20
self.__getattribute__ の中で self._wrapped を取得しようとすると
さらに self.__getattribute__(self, '_wrapped') を呼び出して無限再帰ループになるみたい。

解決方法は・・・たとえば、_wrapped をインスタンス属性としてもつんじゃなくて
クラス属性にインスタンスをキーにした辞書をもつようにするとかでどう?

class wrapper(object):
    _wrapped = {}
    def __init__(self, obj):
        wrapper._wrapped[hash(self)] = obj
    def __del__(self):
        del wrapper._wrapped[hash(self)]
    def __getattribute__(self, attrname):
        return getattr(wrapper._wrapped[hash(self)], attrname)