Как использовать объектную переменную вне объекта и вне класса в другом файле

Есть у меня дискорд бот, который состоит из 3 файлов: rain-bot.py ; variables.py и sqlite_exp.py. Я хочу его научить работать с базами данных sqlite3, сделал почти весь код который нужен, кроме проверки существования id пользователя в базе данных так как для сравнения в основном файле нужно записать результат в переменную. Но я не могу ее импортировать в основной файл, выскакивает ошибка:

ImportError: cannot import name 'result' from 'sqlite_exp' (F:\python\rain-bot\sqlite_exp.py)

Говорю честно что я шерстил гугл сколько мог, но то ли из-за того что я тупой, то ли решения плохо были объяснены и я ничего не понял. В общем надежда только на работяг. Код прилагаю снизу

P.S закоменченная часть не доделана и не имеет отношения к делу, к делу отношение имеет только check_userid
P.S.S в check_userid я сделал временное решение которое мне не подходит так как возвращает только логический тип данных (bool) и мне нужно результат чтения их БД записать в переменную для дальнейшего сравнения
P.S.S.S from sqlite_exp import Exp, result к сожалению не работает

Файл sqlite_exp.py

# Система экспы для дискорд бота
import sqlite3


class Exp:
    max_xp = 10000

    def __init__(self, database):
        """Подключаемся к базе данных"""
        self.connection = sqlite3.connect(database)
        self.cursor = self.connection.cursor()

    def add_exp(self, user_id_data):
        with self.connection:
            return self.cursor.execute("INSERT INTO xp (user_id, level, exp) VALUES (?, 0, 10)", (user_id_data,))

    def add_level(self, user_id_data):
        with self.connection:
            return self.cursor.execute("INSERT INTO xp (user_id, level, exp) VALUES (?, 1, 0)", (user_id_data,))

    def edit_exp(self, user_id_data):
        with self.connection:
            return self.cursor.execute("UPDATE xp set exp = (exp + 10) WHERE user_id = ?", (user_id_data,))

    def edit_lvl(self, user_id_data):
        with self.connection:
            return self.cursor.execute("UPDATE xp set level = (level + 1) WHERE user_id = ?", (user_id_data,))

    def check_userid(self, user_id_data):
        with self.connection:
            result  = self.cursor.execute("SELECT user_id FROM xp WHERE user_id = ?", (user_id_data,)).fetchall()
            return bool(len(result))

    # def convert_exp_to_lvl(self, user_id_data):
    #   with self.connection:
    #       resultxp = self.cursor.execute("SELECT exp FROM xp WHERE user_id = ?", (user_id_data,))
    #       if resultxp >= max_xp:
    #           self.cursor.execute("INSERT INTO xp (user_id, level, exp)")


    def close(self):
        """Закрываем соединение с БД"""
        self.connection.close()

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

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

Может быть, как-то так:

В методе класса:

def check_userid(self, user_id_data):
        with self.connection:
            result  = self.cursor.execute("SELECT user_id FROM xp WHERE user_id = ?", (user_id_data,)).fetchall()
            bool_var = bool(len(result))
            return bool_var, result

В главной программе:

ex = Exp(database)
...
v,r = ex.check_userid(user_id_data)
→ Ссылка