核心

可注册元类

class Registrable(name, bases, ns, *, alias=False)[源代码]

基类:type

可注册元类

给基类提供以下功能

  1. 通过名字访问子类

  2. 列出子类的类型

  3. 构造生成子类对象

register(cls, name, override=False, hooks=None)[源代码]

装饰器 Class decorator for registering a subclass.

参数
  • name – 注册名

  • override (bool) – 当name已经注册时,是否进行覆盖

  • hooks (List[HookType]) – 在注册时会被执行的Hook函数

引发

RegistrationError – 如果 override 为 false 并且 name 已经被注册

weak_register(cls, name, subclass, override=False, hooks=None)[源代码]

用于手动对子类进行注册

参数
  • name (str) – 子类的引用名

  • subclass – 子类类型

  • override (bool) – 当name已经注册时,是否进行覆盖

  • hooks – 在注册时会被执行的Hook函数

引发

RegistrationError – 如果 override 为 false 并且 name 已经被注册

hook(cls, hook)[源代码]

函数装饰器,给某个类注册装饰器

by_name(cls, name)[源代码]

通过注册的名字取得实际的类型

参数

name – 注册的名字

返回

Type[T] 使用 name 注册的子类

返回类型

class

引发

RegistrationError – 如果 name 未被注册

list_available(cls)[源代码]

列出所有的注册子类

is_registered(cls, name)[源代码]

如果 name 在类中已经注册,则返回 True

iter_registered(cls)[源代码]

迭代已经注册的名字和对象

from_params(cls, __config, *args, extra=None, **kwargs)[源代码]

使用 config 生成对象

参数
  • cls – 类型

  • __config – 配置项,通常为字典,形如 {‘class’:’ClassName’, ‘init’:{ ‘arg’: arg } }

  • *args – 直接传入的arg

  • extra – 根据需要传入的数据

  • **kwargs – 其他参数

返回

根据参数生成的对象

异常

exception Error[源代码]

基类:Exception

exception RegistrationError[源代码]

基类:ltp.core.exceptions.Error

exception DataUnsupported[源代码]

基类:ltp.core.exceptions.Error