函数的嵌套及名称空间 作用域
六.函数的嵌套
1.在函数内又调用了其他函数
def max2(x,y): #两个值比较
if x > y:
return x
else:
return y
res=(max2(1,3)
print(res)
def max3(x,y,z): #三个值比较
res1=max2(x,y)
res2=max2(res1,z)
return res2
print(max3(11,99,2))
2.函数的嵌套定义:在函数内又定义了其他函数
def func1():
print('from func1')
def func2():
print('from func2')
print(func2) #打印函数的内存地址
func2() #调用函数
func1()
3.函数的层级嵌套
def f1():
print('f1') #第一层结果
def f2():
print('f2') #第二层结果
def f3():
print('f3') #第三层结果
f3() #第三层调用
f2() #第二层调用
f1() #第一层调用
七.函数的名称空间与作用域
1.名称空间:namespaces:存放名字与值的绑定关系的地方
2.名称空间分三类:
2.1 内置的名称空间:存放Python解释器自带的名字,在解释器启动时就生效 解释器关闭则失效
print int 都是Python内置的名称空间
2.2 全局名称空间:文件级别的名字,在执行文件的时候生效,在文件结束或者文件执行期间被删除失效
x=1 #全局变量 什么地方能引用
def f1():
def f2():
print(x)
f2()
f1()
2.3 局部名称空间:存放函数内定义的名字(函数的参数以及函数内的名字都存放与局部名称空间)
函数调用时临时生效,函数结束则失效
def f1():
x=2 #局部变量
print(x)
f1()