Как на Python использовать переменные/списки в нескольких функциях без глобальных переменных?
Например есть список number который получает номер телефона во второй по счету функции, а в третьей по счету я уже его использую. Если делать через global, то все работает, но при условии что ботом пользуется только 1 человек. Если им одновременно пользуется несколько то все значения путаются в global и получается некорректный результат. Как этого избежать?(Текст в кавычках убран специально)
from telebot import types
bot = telebot.TeleBot('')
count = 0
spis = []
fil = 0
chet = 0
number = []
name1 = []
name2 = []
@bot.message_handler(commands=['start'])
def start(message):
global count
global spis
global number
global name1
global name2
global fil
fil = 0
name1 = []
name2 = []
number = []
count = 0
spis = []
markup = types.ReplyKeyboardMarkup(resize_keyboard=True, row_width=3)
button_phone = types.KeyboardButton(text="", request_contact=True)
markup.add(button_phone)
send_mess = f'<b> Здравствуйте, {message.from_user.first_name} </b>!👋\n\nЭтот бот поможет '
bot.send_message(message.chat.id, send_mess, parse_mode='html', reply_markup=markup)
@bot.message_handler(content_types=['contact'])
def contact(message):
global number
global name1
global name2
if message.contact is not None:
markup = types.ReplyKeyboardMarkup(resize_keyboard=True, row_width=3)
btn1 = types.KeyboardButton('1100 ')
btn2 = types.KeyboardButton('1100')
markup.add(btn1, btn2)
number = message.contact.phone_number
name1 = message.contact.first_name
name2 = message.contact.last_name
final_message = "Отлично!"
bot.send_message(message.chat.id, final_message, parse_mode='html', reply_markup=markup)
@bot.message_handler(content_types=['text'])
def mess(message):
global count
global spis
global fil
global chet
global number
global name1
global name2
get_message_bot = message.text.strip().lower()
if get_message_bot == "":
markup = types.ReplyKeyboardMarkup(resize_keyboard=True, row_width=3)
bot.send_message(, f'Заявка 1000+\nПользователь:\n{name1, name2}\nНомер телефона:\n{number}')
final_message = ""```
Источник: Stack Overflow на русском