Как создать функцию, в которой переменная будет содержать несколько других функций?

Как можно создать список функций в Python для использования их в цикле в коде между begin_fill() и end_fill()?
  • 20 марта 2024 г. 16:49
Ответы на вопрос 2
В Python можно создать функцию, в которой переменная содержит несколько других функций с помощью lambda-функций. Например:

```python
def create_function():
    func1 = lambda x: x + 1
    func2 = lambda x: x * 2
    return func1, func2

func1, func2 = create_function()
print(func1(5))  # Выведет 6
print(func2(5))  # Выведет 10
```

Для создания списка функций, которые будут использоваться в цикле между begin_fill() и end_fill() в коде, можно сделать следующим образом:

```python
def func1():
    # Логика функции

def func2():
    # Логика функции

def func3():
    # Логика функции

functions = [func1, func2, func3]

# Пример использования в цикле
for func in functions:
    begin_fill()
    func()
    end_fill()
``` 

В данном примере `begin_fill()` и `end_fill()` будут вызываться для каждой функции из списка `functions`.
Блок операторов, вынесенный отдельно и именованный - это и есть функция, вообще-то. Читай про ключевое слово def. 
from turtle import *

color("black", "red")
m = 100

def myfunc():  # мы говорим "существует функция myfunc, не принимающая параметров"
    forward(12*m)  # функция "увидит" переменную m, описанную выше по коду
    right(940)

begin_fill()
for i in range(4):
    myfunc()  # вызываем нашу функцию
end_fill()
canvas = getcanvas()
cnt = 0
for y in range(-100*m, 100*m, m):
    for x in range(-100*m, 100*m, m):
        item = canvas.find_overlapping(x,y,x,y)
        if len(item) == 1 and item[0] == 5:
            cnt += 1
print(cnt)
done()
exit()
Похожие вопросы