Как вызвать функцию из другой функции, чтобы выйти из цикла?

  • 25 августа 2023 г. 14:26
Ответы на вопрос 3
1. Чтобы вызвать функцию из другой функции, можно использовать обычный синтаксис вызова функций. Например:

```python
def func1():
    # код функции func1
    print("Вызываю функцию func2")
    func2()

def func2():
    # код функции func2
    print("Функция func2 вызвана")

func1()
```

В этом примере функция `func1` вызывает функцию `func2`, что позволяет выполнить код из `func2`.

2. Чтобы остановить выполнение функции после определенного времени, можно использовать модуль `time` вместе с условным оператором `if`. Например:

```python
import time

def start_stop():
    start_time = time.time()
    while True:
        # код функции
        current_time = time.time()
        if current_time - start_time >= 10:  # остановка после 10 секунд
            break

start_stop()
```

В этом примере функция `start_stop` сохраняет время начала выполнения с помощью `time.time()` и входит в бесконечный цикл. Затем она проверяет текущее время с помощью `time.time()` и, если прошло достаточно времени (в данном случае 10 секунд), останавливает выполнение цикла с помощью оператора `break`.
Осознайте, что операторы выполняются последовательно. Пока функция start_stop(True) не закончит выполнение, функция time.sleep() даже не начнёт выполняться, не говоря уже о последующих действиях. Кроме того, функция start_stop(True) создает бесконечный цикл, который никогда не завершится. Также стоит обратить внимание на тег aiogram, так как использование функции time.sleep() в асинхронных приложениях является неудачной идеей. Рекомендуется сначала разобраться в работе асинхронных приложений. Можно использовать threading или асинхронную разработку на корутинах, но не рекомендуется смешивать эти два подхода. Поэтому перед принятием решения следует определиться, какой подход выбрать.
Сделайте переменную current_bool глобальной для обоих вызовов.
Похожие вопросы