neutron源码学习基础知识储备之stevedore模块
stevedore是用来实现动态加载代码的开源模块。它是在OpenStack中用来加载插件的公共模块,可以独立于OpenStack而安装使用。
Keep Moving, Keep Learning
neutron源码学习基础知识储备之stevedore模块
stevedore是用来实现动态加载代码的开源模块。它是在OpenStack中用来加载插件的公共模块,可以独立于OpenStack而安装使用。
__new__
方法 实现__new__
方法 并在将一个类的实例绑定到类变量_instance上, 如果cls._instance为None说明该类还没有实例化过,实例化该类,并返回;如果cls._instance不为None,直接返回cls._instance 。
|
|
__init__
与__new__
的区别__init__
与__new__
的主要区别如下:
__new__
是一个静态方法,而__init__
是一个实例方法.__new__
方法会返回一个创建的实例,而__init__
什么都不返回.__new__
返回一个cls的实例时后面的__init__
才能被调用.__new__
,初始化一个实例时用__init__
python的新式类是2.2版本引进来的,我们可以将之前的类叫做经典类或者旧式类。为什么要在2.2中引进new style class呢?官方给的解释是:为了统一类(class)和类型(type)。
使用环境是python 2.7
*args
和 **kwargs
用args和*kwargs只是为了方便并没有强制使用它们。
当你不确定你的函数里将要传递多少参数时你可以用*args.例如,它可以传递任意数量的参数:
|
|