服务登记处

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第三方库


热门话题
反射Java反射:高负载下的NoSuchMethodException   java RxJava:one request>list of Integer>sequence of requests for each int>result to list   java为什么循环之前索引会增加   JavaSpring远程处理和RESTfulURL   java Hibernate搜索仅对我的实体的一部分进行索引   使用DPAD快速滚动时,java RecyclerView onCreateViewHolder调用过多   java将JSON解析到一个表中   java导航抽屉标题textview nullpointerexception   基于接口的Java链接队列   java Guice运行时依赖项参数重新注入   java展平/压缩ZSH中的深度嵌套目录   JavaSpring:Http406此请求标识的资源只能   java如何制作Android启动器图标   Java代码在windows上显示不正确(包含希腊语句子)   使用yourkit进行内存分析所用的java时间   java为什么可以序列化属性而不能序列化对象本身?