Функции и передача данных между ними в python

Подскажите пожалуйста, как получить данные в одной функции, а потом их использовать в других? т.е. например я сделаю еще одну функцию, в которой надо получить значения переменных из функции get_data и использовать их.

from selenium import webdriver

def user_menu():
    vibor = input("Введите: ")

    if vibor == "1":
        get_data()
    elif vibor =="2":
        send_data()

def init_driver():
    options = Options()
    options.headless = False
    browser = webdriver.Firefox(options=options)
    browser.implicitly_wait(5)
    #отправляем данные для авторизации

def get_data():
    #открываем фаерфокс и отправляем в формы данные
    browser = init_driver()
    browser.get('URL')
    #переходим на страницу с данными
    #Получаем старые данные
    #в 4 переменные записываем данные

def send_data():
    #открываем фаерфокс и отправляем в формы данные

def calc():
    Вот в данной функции хочу взять переменные из grt_data и к ним прибавить новые значения и вывести полученное на экран

user_menu()

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

Автор решения: Kers

Верните значение из функции через return.

def fun1(x):
    return x + 1


def fun2(x):
    return x + 2


a = fun1(4)  # 5
b = fun2(a)  # передает 5 получаем 7
print(b)

# Через глобальные переменные
y = 0


def fun3():
    global y
    y = 10
    return y


print(y) # 0 глобальная переменная не меняется
print(fun3()) # 10

Или можно объединить функции в класс но все это начальные основы буквально первых 2-3 уроков. Советую посмотреть любые обучающие материалы в инете по python

→ Ссылка
Автор решения: FotonPC

Я просто обернул функцию в класс и сделал эти переменные в виде атрибутов класса, а потом в user_menu я из global-нул и потом обратился к атрибутам класса в calc, изменил значения и вывел на экран.

from selenium import webdriver

def user_menu():
    vibor = input("Введите: ")

    if vibor == "1":
        get_data_obj = get_data()
    elif vibor =="2":
        send_data()
    global get_data_obj

def init_driver():
    options = Options()
    options.headless = False
    browser = webdriver.Firefox(options=options)
    browser.implicitly_wait(5)
    #отправляем данные для авторизации

class get_data:
    def __init__(self):
        #открываем фаерфокс и отправляем в формы данные
        browser = init_driver()
        browser.get('URL')
        #переходим на страницу с данными
        #Получаем старые данные
        #в 4 переменные записываем данные
        self.perem1 = 23*23^34

def send_data():
    pass
    #открываем фаерфокс и отправляем в формы данные

def calc():
    var1 = get_data_obj.perem1
    print(var1+10)

user_menu()
→ Ссылка