nonebot2/website/docs
AkiraXie 925886534c
📝 refactor dependency-injection documents (#791)
* 📝 update dependency-injection docs

* 🚨 auto fix by pre-commit hooks

* 📝 fix some indent

* 📝 fix description

* 📝 add create callable in DI docs

* 🚨 auto fix by pre-commit hooks

* 📝 delete unused params in docs

* 📝 update di docs

* 🚨 auto fix by pre-commit hooks

* 📝 update di doc

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: yanyongyu <42488585+yanyongyu@users.noreply.github.com>
2022-02-14 17:26:55 +08:00
..
advanced 📝 refactor dependency-injection documents (#791) 2022-02-14 17:26:55 +08:00
api 📝 add frontmatter config 2022-01-16 11:30:09 +08:00
start 📝 Fix copywriting 2022-02-06 19:46:14 +08:00
tutorial ✏️ fix plugin structure typo 2022-02-14 10:53:56 +08:00
README.md 📝 Fix copywriting 2022-02-06 19:46:14 +08:00

sidebar_position id slug
0 index /

概览

NoneBot2 是一个现代、跨平台、可扩展的 Python 聊天机器人框架,它基于 Python 的类型注解和异步特性,能够为你的需求实现提供便捷灵活的支持。

需要注意的是NoneBot2 仅支持 Python 3.7.3 以上版本

特色

异步优先

NoneBot2 基于 Python asyncio 编写,并在异步机制的基础上进行了一定程度的同步函数兼容。

完整的类型注解

NoneBot2 参考 PEP 484 等 PEP 完整实现了类型注解,通过 pyright/pylance 检查。配合编辑器的类型推导功能,能将绝大多数的 Bug 杜绝在编辑器中(编辑器支持)。

开箱即用

NoneBot2 提供了使用便捷、具有交互式功能的命令行工具--nb-cli,使得初次接触 NoneBot2 时更容易上手。详细使用方法请参考各文档章节以及使用脚手架

插件系统

插件系统是 NoneBot2 的核心,通过它可以实现机器人的模块化以及功能扩展,便于维护和管理。

依赖注入系统

NoneBot2 采用了一套自行定义的依赖注入系统,可以让事件的处理过程更加的简洁、清晰,增加代码的可读性,减少代码冗余。

什么是依赖注入

“依赖注入”意思是,在编程中,有一种方法可以让你的代码声明它工作和使用所需要的东西,即**“依赖”**。

系统(在这里是指 NoneBot2将负责做任何需要的事情为你的代码提供这些必要依赖即**“注入”**依赖性)

这在你有以下情形的需求时非常有用:

  • 这部分代码拥有共享的逻辑(同样的代码逻辑多次重复)
  • 共享数据库以及网络请求连接会话
    • 比如 httpx.AsyncClientaiohttp.ClientSessionsqlalchemy.Session
  • 用户权限检查以及认证
  • 还有更多...

它在完成上述工作的同时,还能尽量减少代码的耦合和重复