Alconna Arpamar - RF-Tar-Railt/Cesloi GitHub Wiki

Arpamar

Alconna 会将解析的结果包装为一个Arpamar返回,你可以通过Arpamar获取解析成功的值

通过如下方式来使用Arpamar:

  • Arpamar.main_args: 当 Alconna 写入了 main_args 时,该参数返回对应的解析出来的值
  • Arpamar.header: 当 Alconnacommand 内写有正则表达式时,该参数返回对应的匹配值; 若未写, 返回命令头是否匹配成功
  • Arpamar.all_matched_args: 返回 Alconna 中所有 Args 解析到的值
  • Arpamar.option_args: 返回 Alconna 中所有 OptionSubcommand 里的 Args 解析到的值
  • Arpamar.has: 判断 Arpamar 内是否有对应的属性
  • Arpamar.get: 返回 Arpamar 中指定的属性
  • Arpamar.matched: 返回命令是否匹配成功
  • Arpamar.error_data: 当匹配失败时,该参数为剩余未解析的参数

另外, 可直接通过Arpamar.xxx 来获取 xxx属性

>>> alc = Alconna(
...     command="test",
...     options=[
...         Option("name", Args["pak":str]),
...         Option("foo", Args["bar":bool:True])
...     ]
... )
>>> msg = MessageChain.create("test name ces foo False")
>>> result = alc.analyse_message(msg)
>>> result.pak
'ces'
>>> result.bat
False