一、名称空间与作用域 名称空间:存放名字的地方,准确的说名称空间是存放名字与变量值绑定关系的地方 内置名称空间:在python解释器启动时产生,存放一些python内置的名字 全局名称空间:在执行文件时产生,存放文件级别定义的名字 x=1 def func(): y=2 def f1():pass ...
分类:
编程语言 时间:
2017-12-07 22:39:56
阅读次数:
256
装饰器 简单总结 装饰器的本质:一个闭包函数 装饰器的功能:在不修改原函数及其调用方式的情况下对原函数功能进行扩展 简单装饰器的实现 装饰器带参数的函数 (摘自:http://www.cnblogs.com/Eva-J/articles/7194277.html#_label2) 装饰器带参数的多个 ...
分类:
编程语言 时间:
2017-12-02 23:14:23
阅读次数:
169
函数对象: 函数是第一类对象 第一类对象: 指可以在执行期创造并作为参数传递给其他函数或存入一个变量的实体 第一类对象所特有的特性为: 可以当容器被存入变量或其他结构 可以被作为参数传递给其他函数 可以被作为函数的返回值 可以在执行期创造,而无需完全在设计期全部写出 即使没有被系结至某一名称,也可以 ...
分类:
其他好文 时间:
2017-11-27 01:22:28
阅读次数:
240
一. 上节课复习 1. 为何要使用函数 1. 解决代码重用问题 2. 统一维护 3. 程序的组织结构清晰,可读性强 1. 定义函数 1. !!!先定义后使用 2. 定义无参函数 定义有参函数 定义空函数 2. 调用函数 1. 语句形式:foo() 2. 表达式形式:foo(1,2) 3. 函数调用作 ...
分类:
其他好文 时间:
2017-11-20 21:50:28
阅读次数:
142
函数作为返回值 高阶函数除了可以接受函数作为参数外,还可以把函数作为结果值返回。 我们来实现一个可变参数的求和。通常情况下,求和的函数是这样定义的: 但是,如果不需要立刻求和,而是在后面的代码中,根据需要再计算怎么办?可以不返回求和的结果,而是返回求和的函数: 调用lazy_sum()时,返回求和函 ...
分类:
编程语言 时间:
2017-11-18 13:39:39
阅读次数:
150
1.变量查找顺序:LEGB,作用域局部>外层作用域>当前模块中的全局>python内部作用域 2.只有模块,类,函数才能引入新作用域 3.对于一个变量,内部作用域先声明就会覆盖外部变量,不声明直接使用,就会使用外部作用域的变量 4.内部作用域要修改外部作用域的值时,全局变量要使用global关键字, ...
分类:
其他好文 时间:
2017-11-14 18:38:25
阅读次数:
241
函数名本质上就是函数的内存地址 1.可以被引用 2.可以被当作容器类型的元素 3.可以当作函数的参数和返回值 *不明白?那就记住一句话,就当普通变量用 第一类对象的概念:函数名可以赋值可以作为一个数据结构的元素可以作为一个函数的参数可以作为一个函数的返回值 闭包 闭包函数: 内部函数包含对外部作用域 ...
分类:
其他好文 时间:
2017-11-05 23:40:33
阅读次数:
259
变量作用域 Python 中,程序的变量并不是在哪个位置都可以访问的,访问权限决定于这个变量是在哪里赋值的。 变量的作用域决定了在哪一部分程序可以访问哪个特定的变量名称。Python的作用域一共有4种,分别是: L (Local) 局部作用域 E (Enclosing) 闭包函数外的函数中 G (G ...
分类:
编程语言 时间:
2017-11-05 22:22:07
阅读次数:
347
1, 2, 3, 第三点需要讲解下:for循环中,allwords函数是工厂函数,只调用一次。for循环的每次遍历,都会调用工厂函数返回的闭包函数。这样就能遍历一个文件的每一行的每一个单词。 4, 我们的for循环,不仅仅是调用f函数(迭代函数,这里也是闭包函数)。还可以传递参数,s和a0到ai 5 ...
分类:
其他好文 时间:
2017-11-04 22:22:09
阅读次数:
164
# -*- coding: utf-8 -*- ''' 使用语法糖@来装饰函数,相当于“myfunc = deco(myfunc)” 但发现deco函数只在第一次被调用,且myfunc函数在第一次后又被多调用了一次 ''' def deco(func): print("before myfunc()... ...
分类:
编程语言 时间:
2017-11-04 19:25:49
阅读次数:
146