`

python中的import方法与newInstance

阅读更多
python中的__import__方法,在导入位于子包下的模块时,必须有fromlist参数,否则返回的不正确。
__import__也不能导入module下的class,可以自己写一个函数来解决这个问题

def importAny(name):
    try:
        return __import__(name,fromlist=[''])
    except:
        try:
            i = name.rfind('.')
            mod = __import__(name[:i],fromlist=[''])
            return getattr(mod,name[i+1:])
        except:
            raise RuntimeError('No module of: %s found'%(name))


xxx = importAny('my.xxx')
cls = importAny('my.xxx.SomeClass')
#相当于 Class.forName('my.xxx.SomeClass')
obj = cls('xxxx') 
#相当于newInstance(‘xxx')
分享到:
评论
2 楼 jasongreen 2009-04-08  
插件、扩展、需要这么用

settings.py

plugins=('xxx.xxx.XXX','yyy.yyy.YY','zzz.zzz.ZZZ',)
1 楼 bohemia 2009-04-08  
不利于重构.
Class.forName()感觉不到好处;

相关推荐

    python魔术方法指南

    在Python编程语言中,魔术方法(Magic Methods)是一种特殊的方法类型,它们主要用于实现Python类的行为定制。这些方法通过双下划线(`__`)包围命名,使得它们能够在特定的情况下自动调用。理解并合理运用这些魔术...

    Python Interview

    在Python中,可以使用多种方法实现单例模式,如使用`__new__`方法、装饰器等。 示例: ```python class Singleton: _instance = None def __new__(cls, *args, **kwargs): if not cls._instance: cls._...

    python3.6.5参考手册 chm

    What’s New in Python What’s New In Python 3.6 Summary – Release highlights New Features PEP 498: Formatted string literals PEP 526: Syntax for variable annotations PEP 515: Underscores in ...

    Python-基于PythonDjango的个人blog网站

    **Python Django个人Blog网站搭建详解** 在Web开发领域,Python Django框架因其高效、安全和易于学习的特点,成为了构建内容管理系统(CMS)的热门选择。本篇文章将深入探讨如何使用Python Django来创建一个功能...

    python+pyqt5显示图像,播放视频,绘图小工具

    这个代码创建了一个`QGraphicsView`,并在其`paintEvent`方法中绘制了一条线。你可以根据需要添加更多图形和复杂绘图逻辑。 综上所述,通过结合使用PyQt5提供的组件和方法,我们可以轻松地创建一个具有图像显示、...

    Python库 | cloudfoundry-client-1.12.4.tar.gz

    `cloudfoundry-client` 是一个用于与Cloud Foundry平台交互的Python库。Cloud Foundry是一种开源的平台即服务(PaaS),它提供了自动化的部署、运行和扩展应用程序的能力。这个库使得开发者能够通过Python代码方便地...

    Python中的单例模式的几种实现方式的及优化

    在这个例子中,`__new__`方法被重写,以确保每次调用都返回同一个实例。然而,这种方式在多线程环境中可能会出现问题。当两个线程同时尝试创建实例时,`_instance`变量可能会被同时初始化为两个不同的对象。为了解决...

    上海行知道教育 Python 程序员笔试题.pdf_python面试

    在面试中,对于 Python 程序员,掌握基本概念、数据结构、设计模式以及标准库的使用是至关重要的。下面我们将详细探讨题目中提到的四个知识点: 1. **Python 如何实现单例模式?** 单例模式是一种设计模式,确保...

    Python精要参考.pdf

    Python源代码文件通常以`.py`为扩展名,可以直接运行或通过`execfile()`函数在解释器中执行。 - **变量和表达式**:变量用于存储数据,如Listing 1.1中的`principal`、`rate`和`numyears`。表达式是计算值的组合,...

    Python经典面试题

    在Python中实现单例模式有多种方法。单例模式确保一个类只有一个实例,并提供一个全局访问点。这里介绍两种常用的方法: **方法一:使用元类** ```python class Singleton(type): def __init__(cls, name, bases,...

    什么是随机森林在python和java中如何体现

    在Python中,随机森林的实现主要依赖于`scikit-learn`库。`sklearn.ensemble`模块提供了RandomForestClassifier和RandomForestRegressor类,分别用于分类和回归任务。下面是一些基本的Python代码示例: ```python ...

    Python库 | umongo-2.0.5.tar.gz

    Umongo是Python开发中的一个强大工具,它简化了与MongoDB的交互,让数据模型的管理变得更加直观和高效。通过了解和熟练掌握Umongo,开发者能更好地应对复杂的数据库操作,提高开发效率,减少错误,从而提升项目的...

    使用python写的单例模式日志记录器(设计模式之单例模式)

    当首次调用 `__new__` 方法时,会创建一个新的实例并存储在 `_instance` 中。后续的调用将直接返回已存在的实例,避免了多次创建。 接下来,让我们看看日志记录器如何工作。在Python中,我们可以使用内置的 `...

    python单例模式原理与创建方法实例分析

    在Python中,__new__方法是创建对象的静态方法,它在__init__方法之前被调用,用于返回类的一个新实例。通过__new__方法,我们可以控制实例的创建过程。 ```python class Singleton(object): __instance = None ...

    selenium webdriverAPI-python

    The `__init__` method initializes a new WebDriver instance. Here are the parameters: - `executable_path`: The path to the WebDriver executable file (default: 'IEDriverServer.exe'). This parameter is ...

    阿里python面试题之 – 年薪40万Python工程师

    Python中线程安全的单例实现可以利用`__new__`魔术方法和`Lock`对象: ```python from threading import Lock class Singleton: _instance_lock = Lock() _instance = None def __new__(cls): with cls._...

    Python大数据大厂面试题及答案解析.doc

    在 Python 中,可以使用模块级别的变量和 `__new__` 方法来实现。 ```python class Singleton: _instance = None def __new__(cls): if not cls._instance: cls._instance = super().__new__(cls) return cls...

    使用Spring Boot和Python Flask实现AI文本分类服务注册与发现

    ServiceInstance instance = instances.get(new Random().nextInt(instances.size())); String url = "http://" + instance.getHost() + ":" + instance.getPort() + "/classify"; RestTemplate restTemplate = ...

    Python库 | gardener_oci-1.1236.0-py3-none-any.whl

    在本文中,我们将深入探讨名为“gardener_oci”的Python库,版本为1.1236.0,它是一个针对Python 3编写的、与操作系统无关的库。我们将讨论其核心特性、可能的用途以及如何安装和使用。 “gardener_oci”这个名字...

Global site tag (gtag.js) - Google Analytics