核心¶
可注册元类¶
-
class
Registrable
(name, bases, ns, *, alias=False)[源代码]¶ 基类:
type
可注册元类
给基类提供以下功能
通过名字访问子类
列出子类的类型
构造生成子类对象
-
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 已经被注册
-
by_name
(cls, name)[源代码]¶ 通过注册的名字取得实际的类型
- 参数
name – 注册的名字
- 返回
Type[T] 使用 name 注册的子类
- 返回类型
class
- 引发
RegistrationError – 如果 name 未被注册