python 3的脏加载程序

dirty-loader的Python项目详细描述


travis-mastercoverall-masterDocumentation Status

脏装载机

易于使用的加载程序库。

变更日志

版本0.2.2

  • 简化代码。
  • 添加了BaseFactory方法以从列表或词典中加载项。

版本0.2.1

  • 允许三种类型的实例定义:string、structured和structure simplified。

版本0.2.0

  • 为班级定制工厂。
  • 日志包的默认工厂。

版本0.1.0

  • 一些重构。
  • 新函数import_class

安装

$ pip install dirty-loader

主装载机

装载机

使用loader,您可以注册已排序的python模块。当你要求上课时 它将尝试为每个模块加载它,直到找到一个为止。

示例

fromdirty_loaderimportLoaderloader=Loader()loader.register_module('tests.fake.namespace1')loader.register_module('tests.fake.namespace2')loader.register_module('tests.fake.namespace3')klass=loader.load_class('FakeClass1')fromtests.fake.namespace1importFakeClass1assertklass==FakeClass1# klass is tests.fake.namespace1.FakeClass1 because it exists in first module registered.# Also, you could get an instance of class using factoryobj=loader.factory('FakeClass1',var1='a',var2=2)# You could load classes from packages inside modules registeredklass=loader.load_class('subnamespace.FakeClass1')fromtests.fake.namespace3.subnamespaceimportFakeClass1asSubFakeClass1assertklass==SubFakeClass1# klass is tests.fake.namespace3.subnamespace.FakeClass1 because it exists in first module registered.

加载反转

它的工作方式与loader相同,但在尝试加载类时会反转排序。

示例

fromdirty_loaderimportLoaderReversedloader=LoaderReversed()loader.register_module('tests.fake.namespace1')loader.register_module('tests.fake.namespace2')klass=loader.load_class('FakeClass1')fromtests.fake.namespace2importFakeClass1assertklass==FakeClass1# klass is tests.fake.namespace2.FakeClass1 because it exists in last module registered.

加载内存空间

使用loadernamespace,您可以注册已排序的命名空间。当你要求上课时 它将尝试为每个名称空间加载它,直到找到一个名称空间为止。每个命名空间都有一个python 模块关联。您可以使用常规加载程序方法加载类,或者 指定要使用的命名空间。

示例

fromdirty_loaderimportLoaderNamespaceloader=LoaderNamespace()loader.register_namespace('fake1','tests.fake.namespace1')loader.register_namespace('fake2','tests.fake.namespace2')fromtests.fake.namespace1importFakeClass1,FakeClass2,FakeClass3klass=loader.load_class('FakeClass1')fromtests.fake.namespace1importFakeClass1assertklass==FakeClass1# klass is tests.fake.namespace1.FakeClass1 because it exists in last module registered.# Also, you could get a class from specific namespaceklass=loader.load_class('FakeClass1',namespace='fake2)fromtests.fake.namespace2importFakeClass1assertklass==FakeClass1# klass is tests.fake.namespace2.FakeClass1 because you specified it.# Namespace could be specified in string class, tooklass=loader.load_class('fake2:FakeClass1')assertklass==FakeClass1# klass is tests.fake.namespace2.FakeClass1 because you specified it.

加载内存空间反转

它的工作方式与loadernamespace相同,但在尝试加载类时会反转排序。

加载已缓存

带缓存的加载程序版本。

loaderReversedCached

带有缓存的loaderReversed版本。

加载内存空间缓存

带有缓存的loadernamespace版本。

加载内存空间反向缓存

带缓存的loadernamespacerevered的版本。

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

推荐PyPI第三方库


热门话题
java FloatingActionButton单击事件不工作   java如何添加Hashmap   java Android应用程序启动时崩溃SecurityException   java重新排列数组的最快方法是什么   java如何延长SOAP头消息时间戳的过期时间   java ClassNotFoundException:com。谷歌。gwt。朱尼特。服务器杜松   使用EasyMock对java类扩展存储过程进行单元测试   java将带有getter和setter的变量添加到现有类中   java如何在JTextArea旁边使用JScrollPane?   java瞬态变量可以以任何方式序列化吗?   java 2线程vs 2进程(设计/性能/隔离)   java Corda:如何将AndComposition与Vault CustomQueryCriteria一起使用   java缺少预处理器问题   javajavafx添加了一个滚动窗格弹出窗口,当用户点击弹出窗口时关闭   java称之为动态方法   java Glassfish:异常跟踪切割   filewriter Java如何将资源(内部文本文件)写入目录?   java如何确定ANTLR 4解析表达式所使用的规则?   java清除字符串之间的字符串   amazon dynamodb我正在使用java和Aws dynamo db开发Alexa skill。每次我输入数据时,它都会发送一个用户id作为主键,我可以删除它吗