rlcompleter — Vervollständigungsfunktion für GNU readline¶
Quellcode: Lib/rlcompleter.py
Das Modul rlcompleter definiert eine Vervollständigungsfunktion, die für die Übergabe an set_completer() im Modul readline geeignet ist.
Wenn dieses Modul auf einer Unix-Plattform mit dem verfügbaren Modul readline importiert wird, wird automatisch eine Instanz der Klasse Completer erstellt und ihre Methode complete() als readline-Vervollständiger gesetzt. Die Methode bietet die Vervollständigung von gültigen Python- Bezeichnern und Schlüsselwörtern.
Beispiel
>>> 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.
Das Modul rlcompleter ist für die Verwendung im interaktiven Modus von Python konzipiert. Sofern Python nicht mit der Option -S ausgeführt wird, wird das Modul automatisch importiert und konfiguriert (siehe Readline-Konfiguration).
Auf Plattformen ohne readline kann die von diesem Modul definierte Klasse Completer weiterhin für benutzerdefinierte Zwecke verwendet werden.
- class rlcompleter.Completer¶
Completer-Objekte haben die folgende Methode
- complete(text, state)¶
Gibt die nächste mögliche Vervollständigung für text zurück.
Wenn diese Methode vom Modul
readlineaufgerufen wird, wird sie nacheinander mitstate == 0, 1, 2, ...aufgerufen, bis die MethodeNonezurückgibt.Wenn sie für text aufgerufen wird, das kein Punktzeichen (
'.') enthält, werden Namen vervollständigt, die aktuell in__main__,builtinsund Schlüsselwörtern (wie vom Modulkeyworddefiniert) definiert sind.Wenn sie für einen Punktnamen aufgerufen wird, wird versucht, alles ohne offensichtliche Nebeneffekte zu evaluieren (Funktionen werden nicht ausgewertet, aber es können Aufrufe von
__getattr__()generiert werden) bis zum letzten Teil, und für den Rest werden über die Funktiondir()Übereinstimmungen gefunden. Jede Ausnahme, die während der Auswertung des Ausdrucks auftritt, wird abgefangen, unterdrückt und es wirdNonezurückgegeben.