14. Interaktiv inmatningsredigering och historikersättning¶
Vissa versioner av Python-tolken har stöd för redigering av den aktuella inmatningsraden och historikersättning, liknande de funktioner som finns i Korn-skalet och GNU Bash-skalet. Detta implementeras med hjälp av biblioteket GNU Readline, som stöder olika redigeringsstilar. Detta bibliotek har sin egen dokumentation som vi inte kommer att duplicera här.
14.1. Komplettering av flikar och historikredigering¶
Komplettering av variabel- och modulnamn är automatiskt aktiverad vid tolkens start så att Tab-tangenten anropar kompletteringsfunktionen; den tittar på Python-satsnamn, de aktuella lokala variablerna och de tillgängliga modulnamnen. För prickade uttryck som string.a
utvärderar den uttrycket fram till den sista '.'
och föreslår sedan kompletteringar från attributen i det resulterande objektet. Observera att detta kan exekvera programdefinierad kod om ett objekt med en __getattr__()
-metod ingår i uttrycket. I standardkonfigurationen sparas även historiken i en fil med namnet .python_history
i användarkatalogen. Historiken kommer att vara tillgänglig igen under nästa interaktiva tolksession.
14.2. Alternativ till den interaktiva tolken¶
Denna funktion är ett enormt steg framåt jämfört med tidigare versioner av tolken, men det finns fortfarande några önskemål kvar: Det skulle vara bra om rätt indrag föreslogs på fortsättningsrader (parsern vet om en INDENT
-token krävs härnäst). Kompletteringsmekanismen kan använda tolkens symboltabell. Ett kommando för att kontrollera (eller till och med föreslå) matchande parenteser, citattecken etc. skulle också vara användbart.
En alternativ förbättrad interaktiv tolk som har funnits ganska länge är IPython, som har tabbkomplettering, objektutforskning och avancerad historikhantering. Den kan också anpassas grundligt och bäddas in i andra applikationer. En annan liknande förbättrad interaktiv miljö är bpython.