Index: Doc/library/rlcompleter.rst =================================================================== --- Doc/library/rlcompleter.rst (revisiĆ³n: 64514) +++ Doc/library/rlcompleter.rst (copia de trabajo) @@ -20,9 +20,9 @@ >>> import readline >>> readline.parse_and_bind("tab: complete") >>> readline. - readline.__doc__ readline.get_line_buffer readline.read_init_file - readline.__file__ readline.insert_text readline.set_completer - readline.__name__ readline.parse_and_bind + readline.__doc__ readline.get_line_buffer( readline.read_init_file( + readline.__file__ readline.insert_text( readline.set_completer( + readline.__name__ readline.parse_and_bind( >>> readline. The :mod:`rlcompleter` module is designed for use with Python's interactive Index: Lib/rlcompleter.py =================================================================== --- Lib/rlcompleter.py (revisiĆ³n: 64514) +++ Lib/rlcompleter.py (copia de trabajo) @@ -92,6 +92,11 @@ except IndexError: return None + def _callable_postfix(self, val, word): + if callable(val): + word = word + "(" + return word + def global_matches(self, text): """Compute matches when text is a simple name. @@ -102,12 +107,13 @@ import keyword matches = [] n = len(text) - for list in [keyword.kwlist, - __builtin__.__dict__, - self.namespace]: - for word in list: + for word in keyword.kwlist: + if word[:n] == text: + matches.append(word) + for nspace in [__builtin__.__dict__, self.namespace]: + for word, val in nspace.items(): if word[:n] == text and word != "__builtins__": - matches.append(word) + matches.append(self._callable_postfix(val, word)) return matches def attr_matches(self, text): @@ -139,7 +145,9 @@ n = len(attr) for word in words: if word[:n] == attr and word != "__builtins__": - matches.append("%s.%s" % (expr, word)) + val = getattr(object, word) + word = self._callable_postfix(val, "%s.%s" % (expr, word)) + matches.append(word) return matches def get_class_members(klass):