Функции и передача данных между ними в 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()