14. ویرایش ورودی تعاملی و جایگزینی تاریخچه

برخی نسخه‌های مفسر پایتون از ویرایش خط ورودی فعلی و جایگزینی تاریخچه پشتیبانی می‌کنند؛ قابلیتی مشابه آنچه در پوستهٔ Korn و پوستهٔ GNU Bash وجود دارد. این قابلیت با استفاده از کتابخانهٔ GNU Readline پیاده‌سازی شده است که از شیوه‌های گوناگون ویرایش پشتیبانی می‌کند. این کتابخانه مستندات اختصاصی خود را دارد که در اینجا آن‌ها را تکرار نمی‌کنیم.

14.1. تکمیل با کلید Tab و ویرایش تاریخچه

تکمیل نام متغیرها و ماژول‌ها به‌طور خودکار فعال می‌شود تا هنگام راه‌اندازی مفسر، به‌گونه‌ای که با فشردن کلید Tab، تابع تکمیل فراخوانی شود. این تابع نام‌های دستورات پایتون، متغیرهای محلی فعلی و نام ماژول‌های موجود را بررسی می‌کند. برای عبارت‌های نقطه‌ای مانند string.a، عبارت تا پیش از آخرین '.' ارزیابی می‌شود و سپس پیشنهادهایی بر اساس ویژگی‌های شیء حاصل ارائه می‌گردد. توجه داشته باشید که اگر شیئی با متد __getattr__() بخشی از عبارت باشد، ممکن است در این فرایند کدی که توسط برنامه تعریف شده است اجرا شود. پیکربندی پیش‌فرض همچنین تاریخچهٔ شما را در فایلی با نام .python_history در پوشهٔ کاربری‌تان ذخیره می‌کند. این تاریخچه در نشست تعاملی بعدی مفسر دوباره در دسترس خواهد بود.

14.2. جایگزین‌هایی برای مفسر تعاملی

این قابلیت نسبت به نسخه‌های قدیمی‌تر مفسر، پیشرفت بسیار بزرگی به شمار می‌رود؛ با این حال، هنوز برخی خواسته‌ها برآورده نشده‌اند: برای نمونه، خوب بود اگر در خطوط ادامه، تورفتگی مناسب پیشنهاد می‌شد (زیرا تجزیه‌کننده می‌داند که آیا در گام بعدی به یک توکن INDENT نیاز است یا خیر). همچنین، سازوکار تکمیل می‌تواند از جدول نمادهای مفسر استفاده کند. وجود دستوری برای بررسی (یا حتی پیشنهاد) تطابق پرانتزها، گیومه‌ها و موارد مشابه نیز مفید خواهد بود.

یکی از جایگزین‌های پیشرفتهٔ مفسر تعاملی که سال‌هاست وجود دارد، IPython است که امکاناتی مانند تکمیل با کلید Tab، کاوش اشیا و مدیریت پیشرفتهٔ تاریخچه را فراهم می‌کند. همچنین می‌توان آن را به‌طور گسترده سفارشی‌سازی کرد و در برنامه‌های دیگر به‌کار گرفت. محیط تعاملی پیشرفتهٔ مشابه دیگری نیز با نام bpython وجود دارد.