Рубрики
Без рубрики

Персонализируйте свой запрос Python

The >>> Мы видим, когда начинается интерактивная оболочка Python, называется строкой подсказки. Усил … Помечено Python, производительность.

>>> Мы видим, когда начинается интерактивная оболочка Python, называется строкой подсказки. Обычно строка быстрой строки предполагает, что интерактивная оболочка теперь готова принять новые команды.

Python 2.7.10 (default, Feb 22 2019, 21:55:15)
[GCC 4.2.1 Compatible Apple LLVM 10.0.1 (clang-1001.0.37.14)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>

Python имеет 2 быстрых строки, один основной >>> и один вторичный ... Что мы обычно видим, когда исполнительный блок (оператор) протягивает многослойное, например: Определение функции

>>> def foo(a, b):
...     return a + b
...
>>>

Оперативные строки определены в Sys модуль как PS1 и PS2 И просто как любой другой атрибут, мы можем изменить значения sys.ps1. и sys.ps2. И изменения вступают в силу немедленно и в результате, подсказка, которую мы видим в оболочке изменяется на новое значение.

>>> import sys
>>> sys.ps1 = '::: '
:::

Из приведенного выше примера мы видим, что изменение значения sys.ps1 к ::: меняет подсказку на ::: Отказ

Поскольку интерактивная оболочка работает в терминале, мы можем цвет и отформатировать его, используя Bash Color Format как показано ниже

import sys
sys.ps1 = "\033[1;33m>>>\033[0m "
sys.ps2 = "\033[1;34m...\033[0m "

Вышесказанный фрагмент кода делает нашу основную строку и вторичную строку строки и вторичной подсказки. Вот как это выглядит

Динамические подсказки строки

Документация утверждает, что если мы назначаем ненужному объекту для PS1 или PS2 Тогда Python подсказывает, позвонив str () На объекте каждый раз отображается подсказка. Теперь мы создаем некоторые состоятельные и динамические подсказки, определив класс и переопределив __str__ метод.

Ниже мы реализуем IPython Как правило, где номер оператора выполнения хранится в члене линия класса и увеличивается каждый раз, когда основные оперативные рендеры.

# -*- coding: utf-8 -*-
import sys

class IPythonPromptPS1(object):
  def __init__(self):
    self.line = 0

  def __str__(self):
    self.line += 1
    return "\033[92mIn [%d]:\033[0m " % (self.line)

sys.ps1 = IPythonPromptPS1()
sys.ps2 = "    \033[91m...\033[0m "

Вышеуказанный фрагмент кода делает подсказку выглядеть так

Мы не хотели бы запустить этот фрагмент кода каждый раз, когда мы запускаем оболочку, и, следовательно, мы используем переменную среды PythonStartup который содержит путь читаемого файла и выполняется до того, как первая подсказка отображается в интерактивном режиме.

Итак, мы бросили фрагмент кода в файл, скажем, iPython.py и экспорт PythonStartup в качестве

export PYTHONSTARTUP="$HOME/ipython.py"

Теперь каждый раз, когда мы начинаем нашу интерактивную оболочку Python, он выполнит файл iPython.py и установить необходимые подсказки строки.

Объединение всего упомянутого выше, я создал утилиту под названием PY-подсказки Отказ Вот мнение темы, которые держат пакет.

Я надеюсь, что вы нашли эту кусок интересным. Python – исчерпывающим расширяющимся языком, сделали его сверхпростые для нас, чтобы изменить быструю строки и быть креативным с ним. Если у вас есть идея темы или уже была персонализирована ваша подсказка, поделитесь этим со мной @arpit_bhayani Я буду в восторге, чтобы узнать больше об этом.

Эта статья была первоначально опубликована на моем Блог – Персонализируйте свой запрос Python .

Статьи, которые вы можете найти интересно:

Если вам понравилось то, что вы читаете, подпишитесь на мою рассылку и получите пост прямо на свой почтовый ящик и дать мне крик @arpit_bhayani .

Оригинал: “https://dev.to/arpit_bhayani/personalize-your-python-prompt-2g4b”