前戏 在给给视图函数加装饰器时来判断是用户是否登录,把没有登录的用户请求跳转到登录页面。我们通过给几个特定视图函数加装饰器实现了这个需求。但是以后添加的视图函数可能都需要加上装饰器,这样是不是稍微有点繁琐。 学完今天的内容之后呢,我们就可以用更适宜的方式来实现类似给所有请求都做相同操作的功能了 中间 ...
分类:
其他好文 时间:
2018-06-11 22:04:55
阅读次数:
126
一、函数对象 函数是一类对象的含义是函数可以被当作各种数据来进行处理 1.引用 2.当作参数传给另一个函数 3.当作函数的返回值 4.当作容器类型的元素(如:list) 1 def pay(): 2 print("支付") 3 def withdraw(): 4 print("取款") 5 def ...
分类:
其他好文 时间:
2018-06-11 02:02:44
阅读次数:
143
首先这是完整的原型链图; 这一整张图,我们只需要构造一个函数; 图中已经构造好了一个函数 Person(); 我们知道: 构造的函数 Person(); 系统会自动帮我们生成一个函数对象 Person.prototype原型 Person();可以用语法 Person.prototype 来访问它的 ...
分类:
其他好文 时间:
2018-06-10 22:10:56
阅读次数:
204
一、 函数是第一类对象,即函数可以当作数据传递 二、 利用该特性,优雅的取代多分支的if 三、 函数的嵌套调用 四、 函数的嵌套定义 五、 名称空间与作用域 (1) 什么是名称空间? (2)名称空间的加载顺序 (3)名字的查找顺序 (4)作用域 ...
分类:
其他好文 时间:
2018-06-10 22:10:17
阅读次数:
194
在讨论原型前,我们需要知道什么是原型,并牢记这些铁定规律 原型,是所有函数(构造函数)对象的一个默认属性(prototype),它的值是一个对象{里面有什么先不管};所以我们一般说原型是构造函数的属性,它本身也是一个对象; 原型有什么作用,原型里面的属性和方法,可以由该构造函数创建的对象继承(这个作 ...
分类:
Web程序 时间:
2018-06-10 20:14:53
阅读次数:
288
一、函数是对象 函数是第一类对象的含义是函数可以被当作数据处理 二、函数的嵌套定义 def f1(): def f2(): print('from f2') f2()f1() 三、名称空间与作用域 1.名称空间namespace 存放名字与值绑定关系的地方 2、名称空间分为三大类 内置名称空间: 作 ...
分类:
其他好文 时间:
2018-06-10 20:09:33
阅读次数:
100
一、装饰器 装饰器可以使函数执行前和执行后分别执行其他的附加功能,这种在代码运行期间动态增加功能的方式,称之为“装饰器”(Decorator),装饰器的功能非常强大。装饰器一般接受一个函数对象作为参数,以对其进行增强 说白了:就相当于C++中的构造函数,与析构函数 装饰器本身是一个函数,用于装饰其他 ...
分类:
编程语言 时间:
2018-06-09 16:43:25
阅读次数:
219
1 对象的概念 a: 对象是单个实物的抽象 b: 对象是一个容器,封装了属性和方法 2 构造函数 面向对象编程的第一步,就是要生成对象。js中面向对象编程是基于构造函数(constructor)和原型链(prototype)的 js语言中使用构造函数作为对象的模板,所谓构造函数,就是提供一个生成对象 ...
分类:
编程语言 时间:
2018-06-08 20:38:49
阅读次数:
167
为了追本溯源, 我顺便研究了new运算符具体干了什么?发现其实很简单,就干了三件事情. var obj = {}; obj.__proto__ = F.prototype; F.call(obj); 第一行,我们创建了一个空对象obj; 第二行,我们将这个空对象的proto成员指向了F函数对象pro ...
分类:
其他好文 时间:
2018-06-08 12:11:53
阅读次数:
130
实例1:通过外部调取内部值函数对象+作用域(打破函数调用层级,从外部调取内部函数的值)#正常情况只能通过f1去调用里面函数inner()的值def f1(): def inner(): print('from inner') inner()f1() #实现外部调取内部函数的输出值#思路:先调用出内置 ...
分类:
其他好文 时间:
2018-06-07 15:35:54
阅读次数:
98