Python类的Factory+Registry模式。
项目描述
ClassRegistry
类注册和工厂模式相交的地方是 ClassRegistry
定义全局工厂,根据可配置的键生成新的类实例。
无缝创建强大的服务注册表。
与setuptools的 entry_points 系统集成,通过第三方库使您的注册表无限可扩展!
还有更多!
入门
使用 class_registry.ClassRegistry 类创建注册表,然后使用其 register 方法装饰您希望注册的任何类
from class_registry import ClassRegistry
pokedex = ClassRegistry()
@pokedex.register('fire')
class Charizard(Pokemon):
...
@pokedex.register('grass')
class Bulbasaur(Pokemon):
...
@pokedex.register('water')
class Squirtle(Pokemon):
...
要从注册表中创建类实例,请使用下标运算符
# Charizard, I choose you!
fighter1 = pokedex['fire']
# CHARIZARD fainted!
# How come my rival always picks the type that my pokémon is weak against??
fighter2 = pokedex['grass']
高级用法
您可以使用ClassRegistry进行更多操作,包括
为新的类实例提供args和kwargs。
自动注册非抽象类。
集成setuptools的entry_points系统,以便第三方库可以将它们自己的类添加到您的注册表中。
将您的注册表包装在实例缓存中,以创建服务注册表。
还有更多!
对于更高级的使用,请查看RTD上的文档!
要求
ClassRegistry与Python版本3.6、3.5和2.7兼容。
安装
使用pip安装最新稳定版本
pip install class-registry
项目详情
关闭
class-registry-2.1.2.tar.gz的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | 678bdb0322566c07a4d8905140d364bd34a73baf46bf7580fc2e06fa994d4e7e |
|
MD5 | 6e992ec6201cae721afad6a4416a0586 |
|
BLAKE2b-256 | 77129588e71126438abdf10d3cec4ff4257eedaf6bc9b9637ab001d138d74085 |
关闭
class_registry-2.1.2-py2.py3-none-any.whl的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | cfb855514753e2edfe8d88b14a6e449820682fe0983efe61b83df28b688b3e5a |
|
MD5 | 4f24faef3adafb5572a8ea762ba629f5 |
|
BLAKE2b-256 | 05ca3723cb3a74a23fe77c88f29fe06fed202acc398763d36b6721dc2883bbd4 |