python基础-函数嵌套与闭包 1.名称空间与作用域 1 名称空间分为: 1 内置名称空间   内置在解释器中的名称 2 全局名称空间   顶头写的名称 3 局部名称空间 2 找一个名称的查找顺序:先在局部名称空间找,再到全局名称空间找,再到内置名称空间 3 Globals()  查看全局名称空间的内容 Locals()   查看局部名称空间的内容 4 全局作用域包含内置名称空间和全局名称空间  局部作用域包含局部名称空间 例 1 查看内建名称空间的内容: 2 作用域 x=1 def foo(…
楔子 假如有一个函数,实现返回两个数中的较大值: def my_max(x,y): m = x if x>y else y return mbigger = my_max(10,20)print(bigger) 之前是不是我告诉你们要把结果return回来你们就照做了?可是你们有没有想过,我们为什么要把结果返回?如果我们不返回m,直接在程序中打印,行不行? 来看结果: >>> def my_max(x,y): ... m = x if x>y else y ... >&…
命名空间 -------‘’存放名字与值的关系”的空间 代码在运行伊始,创建的存储“变量名与值的关系”的空间叫做全局命名空间: 在函数的运行中开辟的临时的空间叫做局部命名空间. 命名空间一共分为三种: 全局命名空间 局部命名空间 内置命名空间 *内置命名空间中存放了python解释器为我们提供的名字:input,print,str,list,tuple...它们都是我们熟悉的,拿过来就可以用的方法. 三种命名空间之间的加载与取值顺序: 加载顺序:内置命名空间(程序运行前加载)->全局命名空间(程…
一.函数对象 函数是第一类对象:函数的内存地址(即函数名)可以像一个变量值一样去使用 1.变量值可以被引用,例如 x = 1,y = x def foo(): print('from foo') f = foo # 变量值(函数名)被引用 print(f) f() 2.变量值可以当作参数传给另外一个函数 def foo(): print('from foo') def bar(x): print(x) x() bar(foo) # 函数名当作参数传给另外一个函数 3.变量值可以当作函数的返回值…
函数总结 # 函数的定义:def func(a, b):    print(a, b)    return a + b​​# 函数四个组成部分# 函数名:调用函数的依据,必须的# 函数体:执行函数逻辑的,必须的# 参数列表:为函数内部提供资源,非必须的# 返回值:将函数执行结果返回给外界,(非必须的)​# 返回值:空返回(没有return|空return) | 一值返回 | 多值返回:装有多个值的元组​# 参数列表:# 实参:外界调用函数传入的参数,拥有实际值# 形参:函数定义时,()中定义用来…
1. day 09 内容复习 # 函数 # 可读性强 复用性强 # def 函数名(): # 函数体 #return 返回值 # 所有的函数 只定义不调用就一定不执行 #先定义后调用 #函数名() #不接收返回值 #返回值 = 函数名() #接收返回值 #返回值 # 没有返回值 :默认返回None # 不写return:函数内的代码执行完毕自动结束 # 只写return:结束一个函数 # return None # 返回一个值 :结束了函数且返回一个值,可以是任意的值 # 返回多个值 : 多个值…
嵌套函数: python允许创建嵌套函数.也就是说我们可以在函数里面定义函数,而且现有的作用域和变量生存周期依旧不变. 例子: #encoding=utf-8 def outer():    name="python" def inner():#outer函数内部定义的函数        print name    return inner()#返回该内部函数 outer() 结果: 理解: 在inner函数中,python解析器需要找一个叫name的本地变量,查找失败后会继续在上层的…
一.函数的嵌套: 1.函数的嵌套调用 def max2(x,y): m = x if x>y else y return m def max4(a,b,c,d): res1 = max2(a,b) res2 = max2(res1,c) res3 = max2(res2,d) return res3 # max4(23,-7,31,11) 函数的嵌套调用 函数的嵌套调用 2.函数的嵌套定义 函数的嵌套定义 3.函数的作用域链:小范围作用域可以使用大范围的变量,但是反之不行,他是单向的. def…
python很多特性与JavaScript是相似甚至相同的: 1. 无类型 2. 函数亦对象 .... 自然: python也允许函数嵌套, 这与JavaScript中函数闭包的作用一样....…
函数嵌套: 第一种嵌套方法 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…