def __getattribute__(self, attrname):

        # get attribute of the SoftLink itself
        if (attrname in SoftLink._link_attrnames
            or attrname[:3] in SoftLink._link_attrprefixes):
            return object.__getattribute__(self, attrname)

        # get attribute of the target node
        elif not self._v_isopen:
            raise tables.ClosedNodeError('the node object is closed')
        elif self.is_dangling():
            return None
        else:
            target_node = self.dereference()
            try:
                # __getattribute__() fails to get children of Groups
                return target_node.__getattribute__(attrname)
            except __HOLE__:
                # some node classes (e.g. Array) don't implement __getattr__()
                return target_node.__getattr__(attrname)
dataset/ETHPy150Open PyTables/PyTables/tables/link.py/SoftLink.__getattribute__