Discord.py: 使用齿轮是在浪费时间吗?

Discord.py: Is using cogs a waste of time?

如果我想将我的代码拆分成多个文件,我可以像这样编写 bash 脚本:

cat first.py second.py third.py > run.py
python ./run.py

另一方面,我必须添加相当多的代码才能使用 cogs。
是否有 reason/advantage 可以使用 cogs 尽管有这样的开销?

我更喜欢为我的 discord.py 机器人使用 cogs 的原因有几个,即使它们只执行一些功能。

  1. 面向对象程序设计:我不知道我能在这里详细说明多少。 OOP 使代码更易于阅读和维护。现在,您肯定仍然可以在没有齿轮的情况下使用 OOP,但是使用它们会使它变得更加容易。毕竟,cogs 的主要目的是允许程序员使用 OOP 而不是函数式编程,并且它在 Cogs 文档的顶部就这么说了。

There comes a point in your bot’s development when you want to organize a collection of commands, listeners, and some state into one class. Cogs allow you to do just that.

  1. 激活和停用特定功能:如果您的机器人被添加到多个公会,公会所有者很可能想要自定义哪些功能居然在他们公会里用。

  2. 隔离问题:根据我的个人经验,使用 cogs 使我的代码调试变得非常容易。我只是注释掉 add_cog 语句,直到我可以缩小包含错误的范围。我想这是第 (1) 点的一部分,但我将其视为额外福利。

我绝对偏向于齿轮,因为我最近一直在使用它们。我会在我的列表中添加更多项目(我可能会在未来继续编辑它),但这些是我能想到的最简单的。据我所知,cogs 不会为您的代码添加任何额外的功能,但它确实可以更好地组织代码。嘿,第 -1 点,使用默认的 help 命令时,您会得到很酷的类别!