说说Python的装饰器模式与面向切面编程
今天来讨论一下装饰器。装饰器是一个很著名的设计模式,经常被用于有切面需求的场景,较为经典的有插入日志、性能测试、事务处理等。装饰器是解决这类问题的绝佳设计,有了装饰器,我们就可以抽离出大量函数中与函数功能本身无关的雷同代码并继续重用。概括的讲,装饰器的作用就是为已经存在的对象添加额外的功能。
1. 装饰器入门
1.1. ...
分类:
编程语言 时间:
2015-06-22 11:13:31
阅读次数:
178
转载请注明:http://blog.csdn.net/uniquewonderq
1.如何获取某个方法
方法的名称和方法的参数列表才能唯一决定某个方法
2.方法的反射操作
method.invoke(对象,参数列表)
1.获取一个方法就是获取类的信息,获取类的信息,首先要获取类的类类型。
2.获取方法名称和参数列表来决定
getMethod获取的是p...
分类:
编程语言 时间:
2015-06-22 11:11:54
阅读次数:
123
别让异常逃离析构函数为什么别让异常逃离析构函数,异常逃离析构函数会引发哪些问题?很明显,异常会带来不明确的行为。
如下代码:
当容器销毁时会调用析构函数,这时如果析构函数抛出异常,容器中剩余的元素还是应该被销毁,否则可能会有内存泄露。这时如果继续销毁其他元素,又出现异常的话,会同时存在两个异常。两个异常同时存在会导致不明确的行为。使用标准库的其他容器或TR1的任何容器或者array,也会遇到类似...
分类:
编程语言 时间:
2015-06-22 11:09:29
阅读次数:
232
k-means算法主要是用来解决什么问题呢?主要是用来解决类似于这样的问题:聚类,如一次班级聚餐,平时玩的好的同学,就会自动的聚集在一起愉快的玩耍。那么什么样才算平时玩的好呢?请看k-means算法。
K-means算法是硬聚类算法,是典型的基于原型的目标函数聚类方法的代表,它是数据点到原型的某种距离作为优化的目标函数,利用函数求极值的方法得到迭代运算的调整规则。K-means算法以欧式距离作为相似度测度,它是求对应某一初始聚类中心向量V最优分类,使得评价指标J最小。算法采用误差平方和准...
分类:
编程语言 时间:
2015-06-22 11:09:19
阅读次数:
163
本文给出了动态规划的简要定义、适用场景、算法实现。并给出了四种经典动态规划:钢条切割求最大收益问题、矩阵链相乘求最小乘法次数问题、最长公共子序列问题、求最小的搜索代价的最优二叉搜索树的c++代码实现。定义
性质 适用条件
算法实现过程首先观察问题是否满足最优子结构性质
写出递归等式递归的定义子问题的最优解
求解子问题的最优解
构造最优解
四个经典问题的cpp实现
1 钢条切割
2 矩阵链相乘
3...
分类:
编程语言 时间:
2015-06-22 11:07:25
阅读次数:
205
从键盘输入的是文本,因为那些键生成文本字符: 字母、数字和标点。比如说,当您想输入整数2004时,您键入字符2、 0、 0和 4 ,如果想把它们存储成4个数值而非字符串,那么您的程序必须把这个字符串逐个字符地转换成数值,这就是scanf()所做的工作!它把输入的字符串转换成各种形式:整数、浮点数、字符和 C的字符串。它是 printf()的逆操作,后者把整数、浮点数、字符和 C的字符串转换成要在屏幕上显示的文本。...
分类:
编程语言 时间:
2015-06-22 11:08:11
阅读次数:
214
1.static有什么用途?(请至少说明两种)
1)在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。
2) 在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。它是一个本地的全局变量。
3) 在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。那就是,这个函数被限制在声明它的模块的本地范围内使用
2.引用与指...
分类:
编程语言 时间:
2015-06-22 11:08:47
阅读次数:
122
体系结构复习 线程级并行是多处理器支持多个线程同时并行执行...
分类:
编程语言 时间:
2015-06-22 11:08:18
阅读次数:
413
This variable should be treated as read-only by the user. Don’t explicitly assign a value to it — you would create an independent local variable with ...
分类:
编程语言 时间:
2015-06-22 11:06:49
阅读次数:
162
Java 中的堆和栈Java把内存划分成两种:一种是栈内存,一种是堆内存。在函数中定义的一些基本类型的变量和对象的引用变量都在函数的栈内存中分配 。当在一段代码块定义一个变量时,Java就在栈中为这个变量分配内存空间,当超过变量的作用域后,Java会自动释放掉为该变量所分配的内存空间,该内存空间可以...
分类:
编程语言 时间:
2015-06-22 11:04:18
阅读次数:
201
1、匿名函数(lambda函数):lambda函数是一种快速定义单行的最小函数,是从Lisp借用来的,可以用在任何需要函数的地方。普通函数定义如下:def f(x,y): return x*yf(2,3)lambda函数定义如下:g=lambda x,y:x*yg(2,3)2、使用lambda...
分类:
编程语言 时间:
2015-06-22 11:05:14
阅读次数:
122
1.m先max(x)求出每列最大值,返回行向量,再max对行向量求出最大值,就是max(max(x))。 注意:max(x),不管x是行列向量,只要是向量,那么就返回一个值。 2.先x(:)转为按列的列向量,然后max,就是max(x(:))。
分类:
编程语言 时间:
2015-06-22 11:01:34
阅读次数:
244
springmvc拦截器的作用,用法。处理流程。
分类:
编程语言 时间:
2015-06-22 11:00:13
阅读次数:
133
VBA取得EXCEL表格中的行数和列数 初学EXCEL宏的童鞋,总是很想知道表格中含有数据的行数和列数,尤其是行数和列数不确定的情况下。这样可以避免很多的错误,并且可以提高效率。但每次用到的时候到网上查找时,总是给了很多无用的答案,往往找不到想要的结果。笔者也是每次使用时,临时查找总是很头疼。偶.....
分类:
编程语言 时间:
2015-06-22 11:01:52
阅读次数:
167
1、本文继续讲解Lua调用C/C++函数,本文的重点是通过metatable来实现Lua Code面向对象调用注册的C函数。本文中涉及的Environment 伪索引,userdata 以及GC 垃圾回收器的内容,都是简单的讲解。不作为本文的重点,这些内容都将在以后的章节中继续讲解。
2、本文涉及的到主要知识点补充说明。
2.1 void *lua_newuserdata (lua_State...
分类:
编程语言 时间:
2015-06-22 09:55:11
阅读次数:
134
Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development and Design中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为 J2EE 应用程序开发提供集成的框架。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅...
分类:
编程语言 时间:
2015-06-22 09:56:01
阅读次数:
134
#include
//冒泡排序
void maopao(int arr[],int len){
for(int i=0;i
for(int j=0;j
if(arr[j] > arr[j+1]){
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
}
//选择排序
void s...
分类:
编程语言 时间:
2015-06-22 09:52:42
阅读次数:
156