构造方法
标准方式
首先给出 Alconna
的构造函数签名:
class Alconna(Subcommand):
def __init__(
self,
*args: Option | Subcommand | str | THeader | Any | Args | Arg,
action: ArgAction | Callable | None = None,
meta: CommandMeta | None = None,
namespace: str | Namespace | None = None,
separators: str | set[str] | Sequence[str] | None = None,
analyser_type: type[TAnalyser] | None = None,
behaviors: list[ArparmaBehavior] | None = None,
formatter_type: type[TextFormatter] | None = None
):
...
其中主要的 args
参数可以接受 Alconna
所需要的基本参数:
- command (
str | Any
): 命令名称, 主要传入str
类型; 其他类型会被转换为BasePattern
类型 - prefixes (
TPrefixes
): 命令前缀; 前缀与名称的具体用法详见 命令头 - args (
Args
|Arg
): 命令参数, 用于匹配命令参数, 详见 命令参数 - options (
Option
): 命令选项, 用于匹配命令选项, 详见 选项 - subcommands (
Subcommand
): 子命令, 用于匹配子命令, 详见 子命令
类似如下:
from alconna import Alconna, Arg, Args, Option, Subcommand
alc = Alconna(
"test",
["/", "!"],
Arg("arg1", int),
Args["arg2", int]["arg3", int],
Option("-o|--option", Args["foo", str]["bar", str]),
Subcommand(
"sub",
Args["arg2", int]["arg3", int],
Option("-o|--option", Args["foo", str]["bar", str])
)
)
其他参数的含义如下: