Как использовать список из функции в другой функции?
У меня есть функция, которая заполняет список значениями.
def converter():
response = requests.get('https://yandex.ru/')
page = response.text
soup = BeautifulSoup(page, 'html.parser')
currency = []
for figures in soup.select('span.inline-stocks__value_inner'):
currency.append(figures.text)
return currency[0] and currency[1]
Так же есть класс в котором я хочу использовать полученные значения из currency, но не могу понять как это реализовать.
@bot.message_handler(commands=['convert'])
def cmd_convert(message):
try:
class Converter:
def __init__(self):
self.usd = currency[0] #Список
self.eur = currency[1]
self.rub = sum
def dollar(self):
return int(self.rub) / int(float(self.usd.replace(',', '.')))
def euro(self):
return int(self.rub) / int(float(self.eur.replace(',', '.')))
def extract_arg(arg):
return arg.split()[1:]
answer = extract_arg(message.text)
sum = int(answer[0])
converter = Converter()
sum1 = round(converter.dollar(), 2)
sum2 = round(converter.euro(), 2)
bot.send_message(message.chat.id, f'USD: {sum1}\nEUR: {sum2}')
except IndexError:
bot.send_message(message.chat.id, 'Введите сумму после команды')
Пробовал вызывать функцию, но это не дало результатов. Буду благодарен за ответ.
Ответы (1 шт):
покажу на примере простого модуля, реализация у тебя будет такая же
напишем первую программу, которая будет выводить на экран через функцию 'Привет! Это говорит мой модуль.'
назовём эту программу mymodule
def function():
print('Привет! Это говорит мой модуль.')
version = '0.1'
# Конец модуля mymodule.py
теперь применим эту функцию в другом .py файле
import mymodule
mymodule.function()
print('Версия', mymodule.version)
Вывод:
Привет! Это говорит мой модуль.
Версия 0.1
теперь благодаря этим знаниям ты можешь применить свою функцию, которая заполняет список значениями в другом файле, но проблема теперь ещё заключается в другом, а что если нужно это сделать в одном .py файле? Тут тоже есть выход. В функции переменные являются локальными и их не вытащить от туда поэтому можно применить наследования в классе в этом примере
class Test_1:
def __init__(self, arg, arg_2):
self.arg = arg
self.arg_2 = arg_2
print("Первый аргумент: {} \nВторой аргумент: {}". format(self.arg, self.arg_2 ))
class Test_2(Test_1):
def __init__(self, arg, arg_2, new_argument):
Test_1.__init__(self, arg, arg_2)
self.new_argument = new_argument
print("Первый аргумент: {} \nВторой аргумент: {} \nТрейтий аргумент: {}".format(self.arg, self.arg_2, self.new_argument))
Test_2('f1', 'f2', 'f3')