定义函数的时候,我们把参数的名字和位置确定下来,函数的接口定义就完成了。对于函数的调用者来说,只需要知道如何传递正确的参数,以及函数将返回什么样的值就够了,函数内部的复杂逻辑被封装起来,调用者无需了解。Python的函数定义非常简单,但灵活度却非常大。除了正常定..
分类:
其他好文 时间:
2017-11-08 17:32:14
阅读次数:
113
装饰器通过装饰器可以为函数添加附加功能。通过修改函数本身也可以实现增加功能,但是通过装饰器还有下面2个好处。装饰器的2个原则:不改变被装饰函数的源代码不改变被装饰函数的调用方式遵循了上面2个原则,我们可以在为函数添加附加功能的时候,不必去破坏已有的稳定的代码和..
分类:
编程语言 时间:
2017-11-08 14:55:30
阅读次数:
197
有关构造函数 1构造函数定义及调用 1)C++中的类可以定义与类名相同的特殊成员函数,这种与类名相同的成员函数叫做构造函数; 2)构造函数在定义时可以有参数; 3)没有任何返回类型的声明。 2构造函数的调用 自动调用:一般情况下C++编译器会自动调用构造函数 手动调用:在一些情况下则需要手工调用构造 ...
分类:
其他好文 时间:
2017-11-07 23:58:38
阅读次数:
393
1.1扩展运算符 1.1.1:... 扩展运算符(spread)是三个点(...)。它好比 rest 参数的逆运算,将一个数组转为用逗号分隔的参数序列。 该运算符主要用于函数调用。 上面代码中,add(...numbers),是函数的调用,它使用了扩展运算符。该运算符将一个数组,变为参数序列。 1. ...
分类:
编程语言 时间:
2017-11-05 19:18:44
阅读次数:
297
今天我们来看一下函数的调用过程与栈帧。 我们通过一段简单的代码和图示来介绍这个过程: 将这个过程用图示表示出来: 在cpu中,两个寄存器EBP、ESP分别指向栈的底端和顶端。 当程序开始运行时,先会创建两个变量a、b, 这时在栈中就会创建两段空间,地址中分别存放a和b的值,且由于a比b先创建,所以a ...
分类:
其他好文 时间:
2017-11-05 13:17:39
阅读次数:
133
1, 也就是说,lua虽然会把代码预编译成中间码,以提高运行速度。但其会在程序运行过程中需要编译器,所以其仍然是解释型语言。loadfile会加载一个文件并将其编译成中间码,并返回一个函数。 2, 3, f()函数的调用,相当于运行了已经被loadfile函数进行编译的foo.lua代码,也就定义了 ...
分类:
其他好文 时间:
2017-11-04 23:44:23
阅读次数:
398
装饰器: 定义:本质是一个函数,装饰其他的函数,就是为其他函数添加附加功能。 原则:1.不能修改被装饰的函数的源代码 2.不能修改被装饰的函数的调用方式 实现装饰器的知识储备: 1.函数即“变量” 2.高阶函数 3.嵌套函数 高阶函数+嵌套函数=》装饰器 装饰器的一个例子: import time ...
分类:
其他好文 时间:
2017-11-04 18:03:17
阅读次数:
117
形式 运算符重载 (1)运算符重载的实质是函数重载(2)可以重载为普通函数,也可以重载为成员函数 (3)把含运算符的表达式转换成对运算符函数的调用(4)把运算符的操作数转换成运算符函数的参数(5)运算符被多次重载时,根据实参的类型决定调用哪个运算符函数(6)重载为成员函数时, 参数个数为运算符目数减 ...
分类:
编程语言 时间:
2017-11-03 20:23:34
阅读次数:
221
闭包:内部函数使用外部函数中的变量,这种情况下就称这是一个闭包。 装饰器:在不改变函数的调用方式的情况下,给函数的前后添加新的功能。 装饰器的固定结构: 装饰器的例子: 概念:开放封闭原则 开放是指:对扩展是开放的 封闭是指:对修改是封闭的 ...
分类:
其他好文 时间:
2017-11-02 20:10:17
阅读次数:
182
函数的定义def函数名([参数列表,可选]):函数的调用函数名([参数列表,可选])函数的参数形参定义函数时,函数的参数名称叫做形式参数实参调用函数时,函数的参数名称叫做实际参数函数的默认参数必须从右到左deffun(x,y=100):printx,y如果没有传入参数y值,则y默认为100;如果赋..
分类:
编程语言 时间:
2017-11-02 11:38:30
阅读次数:
159