Python 是否可以跨多个文件拆分Discord.py bot?

Python 是否可以跨多个文件拆分Discord.py bot?,python,discord,discord.py,Python,Discord,Discord.py,因此,我将我的Discord bot放在一个文件(bot.py)中,因为它有许多命令,我的help命令必须解释每个命令,因为bot的目标是功能性的,并且非常用户友好。正如您可以想象的,这占用了大量的空间。我想做的是将主命令放在bot.py中,并将所有帮助命令放在一个单独的文件(help.py)中。这可能吗?如果是,怎么做?扩展示例 名为foo.py的文件 导入不一致 从discord.ext导入命令 @commands.command() 异步def baz(ctx): 等待ctx发送(“任

因此,我将我的Discord bot放在一个文件(bot.py)中,因为它有许多命令,我的help命令必须解释每个命令,因为bot的目标是功能性的,并且非常用户友好。正如您可以想象的,这占用了大量的空间。我想做的是将主命令放在bot.py中,并将所有帮助命令放在一个单独的文件(help.py)中。这可能吗?如果是,怎么做?

扩展示例

  • 名为
    foo.py的文件
导入不一致
从discord.ext导入命令
@commands.command()
异步def baz(ctx):
等待ctx发送(“任何”)
def设置(机器人):
#每个扩展都应该有这个函数
bot.add_命令(baz)
  • 主文件
bot.load_扩展名(“path.foo”)#文件路径,而不是使用斜杠,使用句点
  • Cogs(可以在主文件中)
类myCG(commands.Cog):
def uuu init uuuu(自我,机器人):
self.bot=bot
@commands.command()
def baz(自身,ctx):
等待ctx发送(“某物”)
bot.添加_cog(MyCog(bot))

结合COG和扩展

  • foo.py
导入不一致
从discord.ext导入命令
类myCG(commands.Cog):
def uuu init uuuu(自我,机器人):
self.bot=bot
@commands.command()
def baz(自身,ctx):
等待ctx发送(“某物”)
def设置(机器人):
bot.添加_cog(MyCog(bot))
  • 主文件
bot.load\u扩展(“path.foo”)
有关更多信息,请参阅和介绍

另外,我假设您正在使用
命令.Bot
,并将您的Bot实例命名为
Bot

扩展示例

  • 名为
    foo.py的文件
导入不一致
从discord.ext导入命令
@commands.command()
异步def baz(ctx):
等待ctx发送(“任何”)
def设置(机器人):
#每个扩展都应该有这个函数
bot.add_命令(baz)
  • 主文件
bot.load_扩展名(“path.foo”)#文件路径,而不是使用斜杠,使用句点
  • Cogs(可以在主文件中)
类myCG(commands.Cog):
def uuu init uuuu(自我,机器人):
self.bot=bot
@commands.command()
def baz(自身,ctx):
等待ctx发送(“某物”)
bot.添加_cog(MyCog(bot))

结合COG和扩展

  • foo.py
导入不一致
从discord.ext导入命令
类myCG(commands.Cog):
def uuu init uuuu(自我,机器人):
self.bot=bot
@commands.command()
def baz(自身,ctx):
等待ctx发送(“某物”)
def设置(机器人):
bot.添加_cog(MyCog(bot))
  • 主文件
bot.load\u扩展(“path.foo”)
有关更多信息,请参阅和介绍


另外,我假设您使用的是
命令.Bot
,并且您将您的Bot实例命名为
Bot

是的,这是可能的,请查看和。在您的案例中,使用扩展,但您也可以将两者结合起来。非常感谢,但是如果可能的话,更详细的回答将非常有用,因为文档没有提供示例或类似的内容。文档确实提供了一个示例。我总是建议看一看,这是discord.py的作者写的,以查看实现。在您的案例中,使用扩展,但您也可以将两者结合起来。非常感谢,但是如果可能的话,更详细的回答将非常有用,因为文档没有提供示例或类似的内容。文档确实提供了一个示例。我总是建议大家看一看,这是discord.py的作者写的,看看它的实现。非常感谢!我一直在寻找这样做的方法很长时间了!非常感谢你!我一直在寻找这样做的方法很长时间了!