基于 inspect 实现重载

学习 

基于 inspect 在运行时动态匹配入参并调用指定函数。

实现了一个基于 OneBot v11 的开发框架,聊聊其中的细节


本文介绍了使用方法,以及一个 asyncio.create_task 存在的隐患、如何与 OneBot 通过 WebSocket 交互、一个简单的依赖注入框架的实现、插件系统的实现、配置系统的实现。

以元类实现单例


通过元类的方式在实例化前检查对象是否已保存,如果有就直接返回。

自己实现 abc 模块的核心功能

学习 

通过 abc 模块可以在 Python 中使用抽象类,定义抽象方法、抽象属性。本文手动实现一个 ABCMeta 来探究其实现原理,这里就牵扯到 CPython 源码中对于 property 的 __isabstractmethod__ 定义。

Python 实现动态的工厂模式


本文讨论的主要是,如何把工厂模式生产的产品,即抽象类的子类信息动态地保存到一个表中,而不是直接简单粗暴地使用 if-else 来判断。使用 Python 中的装饰器或者元类来达到我们保存子类信息的目的。

Python itertools 简单介绍和运用例

学习 

前言最近写 Python 比较多,不可避免地要处理一堆可迭代对象。本文就介绍 Python 内置库 itertools 以及介绍几个我常用的函数的使用方法。

使用 FastAPI+aiosqlite+databases 搭建服务端的基础用法

开发 

本文是主要为从未使用过这些框架的人做一个介绍,并没有太多的技术含量。使用 sqlite 数据库中,连接池的问题可以暂缓考虑,文章中引用了 aiosqlite 下的一个 issue 来说明原因。

Python 使用 pkgutil 访问包内资源

开发 

如果直接写相对路径来导入包内资源,会导致各种各样的问题。我们这里使用 pkgutil 这个内置库,来帮助我们更轻松地处理包内文件。

利用 rply 写一个计算相对分子质量的工具

开发 

利用 rply 这个 lexer/parser 生成器,来实现一个计算相对分子质量的小工具。

Python + inspect 一行实现递归 fib 函数

开发 

利用 inspect 获取当前正在执行的函数,从而达到在 lambda 函数内部递归调用本身的目的。