局部变量与全局变量 局部变量:在函数里面定义的,只有当函数活动时才生效 全局变量:不在函数里面的 In [1]: x=10 In [2]: def bar(): ...: x=20 ...: print x ...: In [3]: x Out[3]: 10 #####如果一定要改变全局的变量,使用global参数#### In [5]: def bar(): ...: global x ...: x = 20 In [6]: x Out[6]: 10 In [7]: bar() In [8]:…
迭代器 迭代是访问集合元素的一种方式.迭代器是一个可以记住遍历的位置的对象.迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束.迭代器只能往前不会后退. 可迭代对象 以直接作用于 for 循环的数据类型有以下几种: 一类是集合数据类型,如 list . tuple . dict . set . str 等: 一类是 generator ,包括生成器和带 yield 的generator function. 这些可以直接作用于 for 循环的对象统称为可迭代对象: Iterable…
函数嵌套: 第一种嵌套方法 def func(): count = 123 def inner(): print(count) inner() func() 第二种嵌套方法 count = 123 def func_1(): print(count) def func_2(): func_1() func_2() 1. global count = 0 def func1(): global count #把count变量变成全局变量,这样才可以修改,因为count在局部函数中没有定义 coun…
在作用域与名字空间提到,python是静态作用域,变量定义的位置决定了变量作用的范围.变量沿着local,global,builtins的路径搜索,直觉上就是从里到外搜索变量,这称为最内嵌套作用域规则. 从里到外的搜索 a = 1 def f(): a = 2 def b(): print(a) b() f() 输出结果 2 最内嵌套作用域规则有一个神奇的特性,它对local变量的搜索只依赖于静态代码的组成,而与代码如何调用没有关系. 闭包 a = 1 def f(): a = 2 def b(…
简单讲解闭包的写法和应用,在这之前,先声明,你定义的任意一个函数都可以作为其他函数的参数.就像下面这段代码的参数func,接收的参数就是一个函数名,在函数体内部使用了func()调用执行函数. 请看下面的代码,注意标红的位置,猜猜看结果 def a(func): def inner(): print("验证中") func() return inner def f2(): print("--------2-----") f2 = a(f2) f2() 结果是先打印:…
0.动态传参内容补充: 0.1 单纯运行如下函数不会报错. def func1(*args,**kwargs): pass func1() 0.2 *的魔性用法 * 在函数定义的时候,代表聚合. *在函数的执行的时候,代表打散. def func1(*args,**kwargs): print(args) #(1, 2, 3) func1(*[1,2,3]) *在函数的执行的时候,代表打散. def func1(*args,**kwargs): print(*args) # print(*(1,…
一.嵌套函数 函数的内部又再定义另一个函数,这个函数就叫嵌套函数,里面含函数就叫内部函数. 示例: 二.返回函数 函数可以接收函数对象作为参数,同理函数也能返回一个函数对象作为返回值. 示例: 返回函数可以用来延迟函数的执行. 三.命名空间与变量作用域 变量作用域指的是变量的存活的范围.命名空间指的是属于一个对象的所有属性(对象)的集合. 示例: A的命名空间是A函数对象里面的所有对象的集合,包括变量a.函数B.变量b:B的命名空间就是属于函数B的所有对象的集合,包括变量b: a的变量作用域就是…
一,复习 ''' 1.函数对象:函数名 => 存放的是函数的内存地址 1)函数名 - 找到的是函数的内存地址 2)函数名() - 调用函数 => 函数的返回值 eg:fn()() => fn的返回值一定是函数 使用: 1)直接被其他变量接收 - 将函数的内存地址直接给其他变量 => 被赋值的变量也是函数对象 2)可以作为函数的参数 - 函数的形参接收到的实参是函数对象 => 形参被赋值后也是函数对象 3)可以作为函数的返回值 - 用变量在外界调用并接受这个函数的值 =>…
今日主要内容 1.  函数的嵌套定义 2.  global.nonlocal关键字 3.  闭包及闭包的应用场景 4. 装饰器 1.  函数的嵌套定义 概念:在一个函数的内部定义另一个函数 为什么要有函数的嵌套定义: 1)函数fn2想直接使用fn1函数的局部变量,可以将fn2直接定义到fn1的内部,这样fn2就可以直接访问fn1的变量 2)函数fn2名字就变成fn1的局部变量了,正常只能在fn1内部使用,想在外部使用,可以将fn2函数对象作为fn1函数的返回值 3)在外部也用同名的变量fn2来接…
Python函数定义.匿名函数.嵌套函数.闭包.装饰器 目录 Python函数定义.匿名函数.嵌套函数.闭包.装饰器 函数核心理解 1. 函数定义 2. 嵌套函数 2.1 作用 2.2 函数变量作用域 3. 闭包 3.1 特点 3.2 实例 4. 装饰器 4.1 形式和作用 4.2 装饰器函数写法 4.3 装饰器用法实例 5. 匿名函数 5.1 格式 5.2 使用原则 5.3 使用方式 6. python函数式编程 6.1 概念 6.2函数式编程的优缺点 6.3 map().filter() 和…