前言

先来纪念第一天,我为这个bot写的博客,我的bot还在腾讯审核中

就在前不久,我做了一个bingyue_dic,今天就来给大家讲讲如何适配变量

在适配之前,请保证你有一定的py基础

开始

你先去我仓库下载最新的源代码->仓库链接点我链接

  • git命令
1
git clone https://github.com/bingqiu456/bingyue_dic_new

下载之后,再从文件夹里找到这两个文件

这两个文件,分别是variable_main.pyvariable_v.py,也是本词库核心的变量文件


这里要分成四种情况了

  • %适配系统变量
  • %适配高级变量
  • $适配系统变量
  • $适配高级变量

不过啊,在开始之前先讲一下,系统变量和高级变量之间的关系

  • 系统变量指的是最基础的功能,比如获取QQ号,消息id的,需要提供event函数的事件,高级变量是给第三方开发者准备的,可以写一些扩展性的变量

这里我就分成两部分去适配变量了


适配百分号的变量

这种变量是最容易上手的,因为你不需要传递任何参数,如果你需要传递参数,你可以去看下面的$参数

1.打开variable_main.py

看到variable的这一部分,这里我分开了系统变量高级变量,我们只需要改高级变量就行了,忘记说了,p函数是系统变量v函数是高级变量

先给我们的变量取个名字,和类名也要取个名字,我这里以名字为test,类名为test_var

因此我们只需要把字典v改成

1
2
3
4
5
v = {
"%主人%":"owner_qq",
"%time%":"get_times",
"%test%":"test_var" # +
}

同时你要记清楚你的类名,返回到上面的代码,找到class api这一段

按着这里抄个模板

1
2
3
4
@staticmethod
async def test_var(*args): # 这里类名要改成你自己设置的
# 这里可以展开你的代码
return "测试"

放进去代码

这样我们的变量就适配完了,在词库里测试一下

机器人就会回复测试

那么这种变量适配我们就讲完了


适配$变量

同样的,我们打开variable_v.py这个文件,pv函数和上面说的一样,但是这里多了falsetrue

这里的falsetrue代表是否提供event事件,如果你想获取事件(event)里的一些参数,请改为true

我这里就示范一下吧,取个名字为猜大小类名为guess_size不需要提供任何事件

在字典v加上

1
2
3
4
5
v = {
"$管理员$":["admin",False],
"$获取消息$":["get_message_type",True],
"$猜大小$":["guess_size",False]
}

也是同样的操作,在api上添加好类

给个模板

1
2
3
@staticmethod
async def guess_size(*args):
# .....

当然你可能会想,如果我想传两个参数呢,三个参数呢,那如何实现,这个问题问的好,直接用空格控开每个函数就行了

所以我们的词库可以这样写

1
2
猜大小
$猜大小 10 20 30 40 ....$

然后奇迹就发生了,我们试着打印一下args函数

可以用遍历直接把字符打印出来,而且不需要写什么复杂的代码,想传多少参数就多少参数

那我们继续完善一下代码吧

1
2
3
4
5
6
@staticmethod
async def guess_size(*args):
i_ = args[0]
for i in args:
i_ = max(i_, i)
return str(i_)

这样,我们的猜大小变量就写完了


后记

请保证你写的变量,最后结果一定要字符串,否则会报错