14. ویرایش ورودی تعاملی و جایگزینی تاریخچه¶
برخی نسخههای مفسر پایتون از ویرایش خط ورودی فعلی و جایگزینی تاریخچه پشتیبانی میکنند؛ قابلیتی مشابه آنچه در پوستهی Korn و پوستهی GNU Bash وجود دارد. این قابلیت با استفاده از کتابخانهی GNU Readline پیادهسازی شده است که از شیوههای گوناگون ویرایش پشتیبانی میکند. این کتابخانه مستندات اختصاصی خود را دارد که در اینجا آنها را تکرار نمیکنیم.
14.1. تکمیل با کلید Tab و ویرایش تاریخچه¶
تکمیل نام متغیرها و ماژولها بهطور خودکار فعال میشود تا هنگام راهاندازی مفسر، بهگونهای که با فشردن کلید Tab، تابع تکمیل فراخوانی شود. این تابع نامهای دستورات پایتون، متغیرهای محلی فعلی و نام ماژولهای موجود را بررسی میکند. برای عبارتهای نقطهای مانند string.a، عبارت تا پیش از آخرین '.' ارزیابی میشود و سپس پیشنهادهایی بر اساس ویژگیهای شیء حاصل ارائه میگردد. توجه داشته باشید که اگر شیءای با متد __getattr__() بخشی از عبارت باشد، ممکن است در این فرایند کدی که توسط برنامه تعریف شده است اجرا شود. پیکربندی پیشفرض همچنین تاریخچهی شما را در پروندهای با نام .python_history در پوشهی کاربریتان ذخیره میکند. این تاریخچه در نشست تعاملی بعدی مفسر دوباره در دسترس خواهد بود.
14.2. جایگزینهایی برای مفسر تعاملی¶
این قابلیت نسبت به نسخههای قدیمیتر مفسر، پیشرفت بسیار بزرگی به شمار میرود؛ با این حال، هنوز برخی خواستهها برآورده نشدهاند: برای نمونه، خوب بود اگر در سطرهای ادامه، تورفتگی مناسب پیشنهاد میشد (زیرا پارسر میداند که آیا در گام بعدی به یک توکن INDENT نیاز است یا خیر). همچنین، سازوکار تکمیل میتواند از جدول نمادهای مفسر استفاده کند. وجود دستوری برای بررسی (یا حتی پیشنهاد) تطابق پرانتزها، گیومهها و موارد مشابه نیز مفید خواهد بود.
یکی از مفسرهای تعاملی پیشرفتهی جایگزین که مدت زیادی است وجود دارد، IPython است که قابلیتهایی مانند تکمیل خودکار با کلید Tab، کاوش اشیا و مدیریت پیشرفتهی تاریخچه را ارائه میکند. این مفسر همچنین میتواند بهطور کامل سفارشیسازی شده و در برنامههای دیگر تعبیه شود. یک محیط تعاملی پیشرفتهی مشابه دیگر، bpython است.