一、定义 1、装饰器:本质是函数。 2、功能:用来装饰其他函数,顾名思义就是,为其他的函数添加附件功能的。 二、原则 1、不能修改被装饰函数的源代码 2、不能修改被装饰函数的调用方式 装饰器为什么会有这两个原则呐?因为如果你写的这个程序在生产环境下已经运行了,如果修改别人的源代码或者修改别人的调用方 ...
分类:
其他好文 时间:
2017-08-12 19:02:04
阅读次数:
142
Javascript高级函数 惰性载入函数 函数柯里化 级联函数 这并不全面,只是几个主要的。 惰性载入函数 惰性载入表示函数执行的分支只会在函数第一次掉用的时候执行,在第一次调用过程中,该函数会被覆盖为另一个按照合适方式执行的函数,这样任何对原函数的调用就不用再经过执行的分支了。 写一个函数用来创 ...
分类:
编程语言 时间:
2017-08-10 15:35:13
阅读次数:
345
返回值优化(Return Value Optimization,简称RVO)是一种编译器优化机制:当函数需要返回一个对象的时候,如果自己创建一个临时对象用于返回,那么这个临时对象会消耗一个构造函数(Constructor)的调用、一个复制构造函数的调用(Copy Constructor)以及一个析构 ...
分类:
编程语言 时间:
2017-08-08 20:45:32
阅读次数:
291
在说内联函数之前,先说说函数的调用过程。 调用某个函数实际上将程序执行顺序转移到该函数所存放在内存中某个地址,将函数的程序内容执行完后,再返回到 转去执行该函数前的地方。这种转移操作要求在转去前要保护现场并记忆执行的地址,转回后先要恢复现场,并按原来保 存地址继续执行。也就是通常说的压栈和出栈。因此 ...
分类:
编程语言 时间:
2017-08-07 22:22:45
阅读次数:
172
一、this的绑定 This是在运行时进行绑定的。并不是在编写时绑定的,他的上下文取决于函数调用时的各种条件。this的绑定与函数声明的位置没有任何关系,只取决于函数的调用方式。 二、this是什么 当一个函数被调用时,会创建一个活动记录(执行上下文)。这个记录会包含函数在哪里被调用、函数的调用方法 ...
分类:
其他好文 时间:
2017-08-07 13:28:12
阅读次数:
128
1.练习要求: 2.数据文件(data_staff.txt) 3.实现代码 A.主程序部分:采用字典类型来实现函数的调用(key对应的value是函数名,通过Name()语法可以调用函数执行),利用os模块的remove()和rename()实现文件的修改后的旧文件删除和新文件的重命名。 B.查询函 ...
分类:
编程语言 时间:
2017-08-07 01:24:36
阅读次数:
310
有两个与函数有关,一个与表达式计算有关 1:堆栈为函数内部的声明与局部变量提供存储空间 2:进行函数调用时,堆栈存储与此有关的一些维护性信息,被称为过程活动记录,它包含函数的调用地址,任何不适合装入寄存器的参数以及一些寄存器的值的保存。 3:可以作为临时缓冲区,比如计算一个很长的表达式时 ,可以先将 ...
分类:
其他好文 时间:
2017-08-06 20:41:31
阅读次数:
148
#命名关键字参数
#对于关键字参数,函数的调用者可以传入任意不受限制的关键字参数
#至于到底传入了哪些,就需要在函数内部通过kw检查
#仍以person()函数为例,我们希望检查是否有city和job参数
defperson(name,age,**kw):
if‘city‘inkw:
#有city参数
pass
if‘job‘inkw:
#有..
分类:
编程语言 时间:
2017-08-03 20:09:39
阅读次数:
132
測试源代码: //測试派生类的构造函数的调用顺序何时调用 //Fedora20 gcc version=4.8.2 #include <iostream> using namespace std; class base { public: base() { cout<<"base created!" ...
分类:
编程语言 时间:
2017-08-02 22:08:01
阅读次数:
149
装饰器 装饰器本质是函数,是用来装饰其他函数,顾名思义就是,为其他的函数添加附件功能的。 一、装饰器原则: 不能修改被装饰函数的源代码 不能修改被装饰函数的调用方式 def logging(): print("logging...") #正确写法,没有修改源码 def test1(): pass # ...
分类:
编程语言 时间:
2017-08-02 17:39:57
阅读次数:
148