mirror of
https://github.com/koloideal/Argenta.git
synced 2026-06-10 10:05:28 +03:00
docs
This commit is contained in:
@@ -11,16 +11,19 @@
|
||||
-----
|
||||
|
||||
Механизм перехвата ``stdout``
|
||||
-----------------------------
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
По умолчанию ``Argenta`` перехватывает весь текст, который выводится в ``stdout`` внутри обработчика команды (``handler``). Это делается для реализации **динамической длины разделителя**. Система анализирует весь выведенный текст, находит самую длинную строку и использует её длину для отрисовки верхней и нижней разделительных линий. Это создает аккуратный и визуально согласованный интерфейс, где вывод команды "обернут" в рамку, идеально подогнанную под его содержимое.
|
||||
|
||||
-----
|
||||
|
||||
Побочные эффекты перехвата ``stdout``
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Главный побочный эффект этого механизма проявляется при использовании функций, которые одновременно ожидают ввод от пользователя и выводят текст-приглашение. Классический пример — стандартная функция ``input()``.
|
||||
|
||||
.. code-block:: python
|
||||
:linenos:
|
||||
|
||||
# Внутри обработчика команды
|
||||
user_name = input("Введите ваше имя: ")
|
||||
@@ -42,6 +45,7 @@
|
||||
|
||||
.. literalinclude:: ../code_snippets/redirect_stdout_example_sample.py
|
||||
:language: python
|
||||
:linenos:
|
||||
|
||||
В этом случае ``input()`` будет работать как обычно, и пользователь сразу увидит приглашение "Как вас зовут?".
|
||||
|
||||
@@ -67,6 +71,7 @@
|
||||
|
||||
.. literalinclude:: ../code_snippets/redirect_stdout_example_sample2.py
|
||||
:language: python
|
||||
:linenos:
|
||||
|
||||
-----
|
||||
|
||||
|
||||
Reference in New Issue
Block a user