Python, функция return

Имеется функция отрисовки дерева

import simple_draw as sd
def second_tree(point, angle, length, width):
    root_color = (38, 34, 26)
    if length < 4:
        return print(point)
    root_v = sd.get_vector(point, angle, length, width)
    root_v.draw(root_color)
    next_point = root_v.end_point
    next_angle = angle + sd.random_number(18, 42)
    second_tree(next_point, next_angle, length * sd.random_number(6, 9) * .1,
            round(width * sd.random_number(8, 9) * .1))
    next_angle = angle - sd.random_number(18, 42)
    second_tree(next_point, next_angle, length * sd.random_number(6, 9) * .1,
                round(width * sd.random_number(8, 9) * .1))

Print выдает:
Point(x=843, y=150)
Point(x=838, y=142)
Point(x=841, y=141) и тд

Каким образом можно вытащить координаты точек из функции и передать в функцию ниже?

def second_tree_flowers(season, point):
    if season == 'spring':
        sd.circle(point, 2, sd.COLOR_GREEN, 0)
    elif season == 'summer':
        sd.circle(point, 2, sd.COLOR_YELLOW, 0)
    elif season == 'autumn':
       sd.circle(point, 2, sd.COLOR_ORANGE, 0)
    else:
       sd.circle(point, 2, sd.COLOR_WHITE, 0)

Ответы (1 шт):

Автор решения: Roman-Stop RU aggression in UA
def second_tree(point, angle, length, width):
    root_color = (38, 34, 26)
    if length < 4:
        return [point]
    root_v = sd.get_vector(point, angle, length, width)
    root_v.draw(root_color)
    next_point = root_v.end_point
    next_angle = angle + sd.random_number(18, 42)
    p1 = second_tree(next_point, next_angle, length * sd.random_number(6, 9) * .1,
            round(width * sd.random_number(8, 9) * .1))
    next_angle = angle - sd.random_number(18, 42)
    p2 = second_tree(next_point, next_angle, length * sd.random_number(6, 9) * .1,
                round(width * sd.random_number(8, 9) * .1))
    return p1 + p2

И потом использовать:

season = ...
points = second_tree(...)
for point in points:
    second_tree_flowers(season, point)
→ Ссылка