服务登记处

his.almanac的Python项目详细描述


一个简单的服务注册中心,在his中使用,但在其他地方很有用。

注册的服务必须扩展抽象基类,该基类充当契约或接口。

用法

服务的定义如下

importabcclassExampleContract(metaclass=abc.ABCMeta):@abc.abstractmethoddefmethod(self):passclassExampleService(ExampleContract):defmethod(self):print("I'm an example")

然后注册服务的实例:

fromalmanacimportservicess=ExampleService()services.register(s)

最后,要检索注册服务,您需要使用合同:

fromalmanacimportservicess=services.get(ExampleContract)

错误和异常

如果尝试将对象注册为没有抽象父级的服务,则它将引发 无效服务类型异常。

尝试获取尚未注册的服务将引发servicenotfounderror异常。

尝试使用抽象基类(例如契约)以外的任何内容获取服务将导致 系统引发无效合同异常

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

推荐PyPI第三方库


热门话题
禁用Eclipse Java调试器的热代码替换   每次运行jUnit测试时,JavaIntelliJIDEA都会重建整个模块   java如何从InputStream对象读取特定数据?   java我想在每次从recyclerview中单击一个项目时将对象添加到领域数据库   安卓在C和系统中退出(0)的实践。在Java中退出(0)   azure如何将文本文件附加到java中现有的zip文件?   java Spring安全性工作在tomcat服务器(Eclipse)上,但当我将war文件放入tomcat webapp时,Spring安全性就不工作了   java为什么在提供lambda参数时必须捕获异常?   java公共类扩展了JPanel   java如何在SpringAspectJ中使用“declare”指令?   java是编写大量文件的最佳方式   java创建具有多个类依赖项的jar文件   面向对象方法在Java中模拟类分类   java未找到类型为com的返回值的转换器。春天mvc。模型用户]   vb。net在java中解压缩visual basic中压缩的字符串   java为什么我可以更改类中的private属性?   更新Android Studio后java Gradle不工作   图像Java帮助。不规则间隔的幻灯片放映