14. Interaktivní úpravy vstupu a nahrazování historie

Některé verze interpretu Pythonu podporují úpravy aktuálního vstupního řádku a nahrazování z historie podobně jako shelly Korn a GNU Bash. Tato funkce je implementována pomocí knihovny GNU Readline, která podporuje různé způsoby úprav. Knihovna má vlastní dokumentaci, kterou zde nebudeme opakovat.

14.1. Doplňování tabulátorem a úpravy historie

Doplňování názvů proměnných a modulů se při spuštění interpretu automaticky aktivuje, takže klávesa Tab vyvolá funkci doplňování. Ta prohledává názvy příkazů Pythonu, aktuální lokální proměnné a dostupné názvy modulů. U výrazů s tečkami, jako je string.a, vyhodnotí výraz až po poslední '.' a navrhne doplnění z atributů výsledného objektu. Pokud je součástí výrazu objekt s metodou __getattr__(), může se tím spustit kód definovaný aplikací. Výchozí konfigurace také ukládá historii do souboru .python_history v uživatelském adresáři. Historie bude znovu dostupná při příštím interaktivním sezení interpretu.

14.2. Alternativy k interaktivnímu interpretu

Tato funkce představuje oproti dřívějším verzím interpretu obrovský pokrok, některá přání však zůstávají: bylo by vhodné navrhovat správné odsazení na pokračovacích řádcích (syntaktický analyzátor ví, zda má následovat token INDENT). Mechanismus doplňování by mohl používat tabulku symbolů interpretu. Užitečný by byl také příkaz pro kontrolu, nebo dokonce navrhování, odpovídajících závorek, uvozovek atd.

Jednou z dlouhodobě dostupných rozšířených alternativ interaktivního interpretu je IPython, který nabízí doplňování tabulátorem, procházení objektů a pokročilou správu historie. Lze jej také důkladně přizpůsobit a vkládat do jiných aplikací. Dalším podobným rozšířeným interaktivním prostředím je bpython.