def get_node(self, where, name=None, classname=None):

        self._check_open()

        if isinstance(where, Node):
            where._g_check_open()

            basepath = where._v_pathname
            nodepath = join_path(basepath, name or '') or '/'
            node = where._v_file._get_node(nodepath)
        elif isinstance(where, (six.string_types, numpy.str_)):
            if not where.startswith('/'):
                raise NameError("``where`` must start with a slash ('/')")

            basepath = where
            nodepath = join_path(basepath, name or '') or '/'
            node = self._get_node(nodepath)
        else:
            raise TypeError(
                "``where`` must be a string or a node: %r" % (where,))

        # Finally, check whether the desired node is an instance
        # of the expected class.
        if classname:
            class_ = get_class_by_name(classname)
            if not isinstance(node, class_):
                npathname = node._v_pathname
                nclassname = node.__class__.__name__
                # This error message is right since it can never be shown
                # for ``classname in [None, 'Node']``.
                raise NoSuchNodeError(
                    "could not find a ``%s`` node at ``%s``; "
                    "instead, a ``%s`` node has been found there"
                    % (classname, npathname, nclassname))

        return node
Get the node under where with the given name.
dataset/ETHPy150Open PyTables/PyTables/tables/file.py/File.get_node