python类的factory+注册表模式。

phx-class-registr的Python项目详细描述


https://travis-ci.org/todofixthis/class-registry.svg?branch=masterhttps://readthedocs.org/projects/class-registry/badge/?version=latest

类注册表

在注册表模式和工厂模式的交叉点上有 ClassRegistry

  • 定义基于 可配置钥匙。
  • 无缝地创建强大的服务注册中心。
  • 与setuptools的entry_points系统集成以创建注册表 可由第三方库无限扩展!
  • 还有更多!

开始

使用class_registry.ClassRegistry类创建注册表,然后 用它的register方法装饰要注册的任何类:

fromclass_registryimportClassRegistrypokedex=ClassRegistry()@pokedex.register('fire')classCharizard(Pokemon):...@pokedex.register('grass')classBulbasaur(Pokemon):...@pokedex.register('water')classSquirtle(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系统集成,以便第三方 库可以将它们自己的类添加到注册表中。
  • 在实例缓存中包装注册表以创建服务注册表。
  • 还有更多!

有关更高级的用法,请查看ReadTheDocs上的文档!

要求

ClassRegistry与以下Python版本兼容:

  • 3.8
  • 3.7
  • 3.6
  • 3.5

pypy3也受支持。

注意

ClassRegistry与Python2不兼容

安装

通过pip安装最新的稳定版本:

pip install phx-class-registry

运行单元测试

从源安装后运行单元测试:

python setup.py test

此项目还与tox兼容,后者将在中运行单元测试 不同的虚拟环境(每个受支持的python版本一个)。

使用test-runnerextra安装包以设置必要的 依赖项,然后可以使用tox命令运行测试:

pip install -e .[test-runner]
tox -p all

文件

文档可在ReadTheDocs上找到。

如果您是从源代码安装(见上文),也可以构建 本地文档:

  1. 安装额外的依赖项(您只需执行一次):

    pip install '.[docs-builder]'
    
  2. 切换到docs目录:

    cd docs
    
  3. 制作文档:

    make html
    

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
Gson类中的java验证错误   If和elseif之间的java差异?   字典Java8地图。输入比较器   java连接到远程计算机以获得WMI支持   java如何使用改型处理JSON对象中的空值   在Java中使用Comparator时不可编译的源代码   java将Jar添加到JSP的运行时路径   带有随机对象的while循环的java大O时间复杂性   java可以在不考虑参数的情况下模拟方法吗?   java我有一个简单的代码,它不工作。无法修复错误“println”   向eclipse添加Xively java库   java是否可以启用本机代码的缓存?   全局变量如何在Java中的所有类之间共享要使用的语言环境?   Java内存游戏如何翻转单个卡?