rlcompleter — Kompletteringsfunktion för GNU readline¶
Källkod: Lib/rlcompleter.py
Modulen rlcompleter definierar en kompletteringsfunktion som är lämplig att skicka till set_completer() i modulen readline.
När denna modul importeras på en Unix-plattform med modulen readline tillgänglig, skapas automatiskt en instans av klassen Completer och dess metod complete() anges som readline completer. Metoden ger komplettering av giltiga Python identifierare och nyckelord.
Exempel:
>>> import rlcompleter
>>> import readline
>>> readline.parse_and_bind("tab: complete")
>>> readline. <TAB PRESSED>
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.
Modulen rlcompleter är utformad för att användas med Pythons interaktiva läge. Om inte Python körs med alternativet -S importeras och konfigureras modulen automatiskt (se Konfiguration av läslinje).
På plattformar utan readline kan klassen Completer som definieras av denna modul fortfarande användas för anpassade ändamål.
- class rlcompleter.Completer¶
Completer-objekt har följande metod:
- complete(text, state)¶
Returnerar nästa möjliga komplettering för text.
När den här metoden anropas av modulen
readline, anropas den successivt medstate == 0, 1, 2, ...tills metoden returnerarNone.Om den anropas för text som inte innehåller ett punkttecken (
'.'), kommer den att komplettera från namn som för närvarande definieras i__main__,builtinsoch nyckelord (som definieras av modulenkeyword).Om den anropas för ett punktat namn försöker den utvärdera allt utan uppenbara bieffekter (funktioner utvärderas inte, men den kan generera anrop till
__getattr__()) fram till den sista delen, och hittar matchningar för resten via funktionendir(). Alla undantag som uppstår under utvärderingen av uttrycket fångas upp, tystas ochNonereturneras.