14. ਇੰਟਰਐਕਟਿਵ ਇਨਪੁੱਟ ਸੰਪਾਦਨ ਅਤੇ ਹਿਸਟਰੀ ਬਦਲਾਅ¶
Python interpreter ਦੇ ਕੁਝ ਸੰਸਕਰਣ ਮੌਜੂਦਾ input line ਦੇ ਸੰਪਾਦਨ ਅਤੇ history substitution ਦਾ ਸਮਰਥਨ ਕਰਦੇ ਹਨ, ਜੋ Korn shell ਅਤੇ GNU Bash shell ਵਿੱਚ ਮੌਜੂਦ ਸੁਵਿਧਾਵਾਂ ਵਰਗੇ ਹਨ। ਇਹ GNU Readline ਲਾਇਬ੍ਰੇਰੀ ਦੀ ਵਰਤੋਂ ਨਾਲ ਲਾਗੂ ਕੀਤਾ ਗਿਆ ਹੈ, ਜੋ ਵੱਖ-ਵੱਖ ਕਿਸਮਾਂ ਦੇ ਸੰਪਾਦਨ ਦਾ ਸਮਰਥਨ ਕਰਦੀ ਹੈ। ਇਸ ਲਾਇਬ੍ਰੇਰੀ ਦੀ ਆਪਣੀ ਦਸਤਾਵੇਜ਼ੀਕਰਨ ਹੈ ਜਿਸਨੂੰ ਅਸੀਂ ਇੱਥੇ ਦੁਹਰਾਵਾਂਗੇ ਨਹੀਂ।
14.1. ਟੈਬ ਪੂਰਨਤਾ ਅਤੇ ਹਿਸਟਰੀ ਸੰਪਾਦਨ¶
Interpreter ਸ਼ੁਰੂ ਹੋਣ ਸਮੇਂ variable ਅਤੇ module ਨਾਮਾਂ ਦੀ ਪੂਰਨਤਾ automatically enabled ਹੁੰਦੀ ਹੈ, ਤਾਂ ਜੋ Tab ਕੁੰਜੀ completion function ਨੂੰ ਚਲਾਏ। ਇਹ Python statement ਨਾਂਵਾਂ, ਮੌਜੂਦਾ local variables ਅਤੇ ਉਪਲਬਧ module ਨਾਂਵਾਂ ਨੂੰ ਵੇਖਦਾ ਹੈ। string.a ਵਰਗੀਆਂ dotted expressions ਲਈ ਇਹ ਆਖਰੀ '.' ਤੱਕ expression ਦਾ ਮੁਲਾਂਕਣ ਕਰਦਾ ਹੈ ਅਤੇ ਫਿਰ ਪ੍ਰਾਪਤ object ਦੇ attributes ਤੋਂ ਸੁਝਾਅ ਦਿੰਦਾ ਹੈ। ਧਿਆਨ ਦਿਓ ਕਿ ਜੇ expression ਵਿੱਚ __getattr__() ਮੈਥਡ ਵਾਲਾ object ਸ਼ਾਮਲ ਹੋਵੇ ਤਾਂ application-defined code ਵੀ ਚੱਲ ਸਕਦਾ ਹੈ। ਡਿਫਾਲਟ configuration ਤੁਹਾਡੀ history ਨੂੰ ਤੁਹਾਡੀ user directory ਵਿੱਚ .python_history ਨਾਮ ਦੀ ਫਾਈਲ ਵਿੱਚ ਵੀ ਸੰਭਾਲਦੀ ਹੈ। ਇਹ history ਅਗਲੇ interactive interpreter session ਦੌਰਾਨ ਦੁਬਾਰਾ ਉਪਲਬਧ ਹੋਵੇਗੀ।
14.2. ਇੰਟਰਐਕਟਿਵ ਇੰਟਰਪ੍ਰੀਟਰ ਦੇ ਵਿਕਲਪ¶
ਇਹ ਸੁਵਿਧਾ interpreter ਦੇ ਪੁਰਾਣੇ ਸੰਸਕਰਣਾਂ ਨਾਲ ਤੁਲਨਾ ਕਰਨ 'ਤੇ ਇੱਕ ਵੱਡੀ ਤਰੱਕੀ ਹੈ; ਫਿਰ ਵੀ ਕੁਝ ਇੱਛਾਵਾਂ ਬਾਕੀ ਹਨ। ਜੇ continuation lines ਲਈ ਸਹੀ indentation ਦਾ ਸੁਝਾਅ ਮਿਲੇ ਤਾਂ ਵਧੀਆ ਹੋਵੇਗਾ (parser ਜਾਣਦਾ ਹੈ ਕਿ ਅਗਲਾ INDENT token ਲੋੜੀਂਦਾ ਹੈ ਜਾਂ ਨਹੀਂ)। Completion mechanism interpreter ਦੀ symbol table ਦੀ ਵਰਤੋਂ ਵੀ ਕਰ ਸਕਦਾ ਹੈ। Matching parentheses, quotes ਆਦਿ ਦੀ ਜਾਂਚ ਕਰਨ (ਜਾਂ ਸੁਝਾਅ ਦੇਣ) ਵਾਲੀ ਕਮਾਂਡ ਵੀ ਲਾਭਦਾਇਕ ਹੋਵੇਗੀ।
ਇੱਕ ਵਿਕਲਪੀ ਉੱਨਤ interactive interpreter ਜੋ ਕਾਫੀ ਸਮੇਂ ਤੋਂ ਉਪਲਬਧ ਹੈ IPython ਹੈ, ਜਿਸ ਵਿੱਚ tab completion, object exploration ਅਤੇ advanced history management ਵਰਗੀਆਂ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਹਨ। ਇਸਨੂੰ ਪੂਰੀ ਤਰ੍ਹਾਂ customize ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ ਅਤੇ ਹੋਰ applications ਵਿੱਚ embed ਵੀ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ। ਇਸੇ ਤਰ੍ਹਾਂ ਦਾ ਇੱਕ ਹੋਰ ਉੱਨਤ interactive environment bpython ਹੈ।