Распределение функций по разным файлам discord.py?

Я пишу бота для Discord на Python с помощью библиотеки discord.py
Нужно придумать или подсказать уже существующую реализацию как сделать так чтобы я мог раскидать свой код по разным файлам. Представим ситуацию что у меня есть 2 файла: main.py и func.py
Нужно чтобы:
Подключение и ивенты бота остались в файле main.py
Но чтобы функция hello() находилась в файле func.py

Код ниже это из файла main.py:
import discord
from discord.ext import commands
from config import settings
import sqlite3

# Подключение намерений (Intents)
intents = discord.Intents.all()

bot = commands.Bot(command_prefix=settings['prefix'], intents=intents)

# Подключение базы данных
data_base = sqlite3.connect('data\\discord_db.db', timeout=10)
cursor = data_base.cursor()


@bot.event
async def on_ready():
    print('On ready event loading...')
    print(f'Discord BOT {bot.user.name} connected')
    print(f'Client ({bot.user.name}) id is {bot.user.id}')
    for guild in bot.guilds:
        print(f'Connected to server, id is: {guild.id}')
        for member in guild.members:
            cursor.execute(f"SELECT id FROM users where id={member.id}")
            if cursor.fetchone() is None:
                cursor.execute(
                    f"INSERT INTO users VALUES ({member.id}, '{member.name}', '<@{member.id}>')")
            else:
                pass
            data_base.commit()
        print(f'Server {guild.id} has been processed')

@bot.command()
async def hello(ctx):
    author = ctx.message.author
    await ctx.send(f'Hello, {author.mention}!')


bot.run(settings['token'])
  • Вопрос задан
  • 474 просмотра
Решения вопроса 1
lxstvayne
@lxstvayne
Люблю Python
Можно и без использования ООП. Тебе нужен файл с названием loader.py, где ты инициализируешь бота. Затем файлы, в которые ты импортируешь bot и регистрируешь хендлеры. И, наконец, файл run.py или app.py, куда ты импортишь свои файлы с хендлерами и запускаешь бота.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
SoreMix
@SoreMix Куратор тега Python
yellow
Раскидать в разные файлы и сделать через коги
https://discordpy.readthedocs.io/en/stable/ext/com...
Ответ написан
AlexNest
@AlexNest Куратор тега Python
Работаю с Python/Django
Используйте cogs
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы