100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > python基础之名称空间和作用域 函数嵌套

python基础之名称空间和作用域 函数嵌套

时间:2021-12-08 06:57:33

相关推荐

python基础之名称空间和作用域 函数嵌套

一、名称空间

1、定义:存放名字与值的绑定关系

2、名称空间分为:内置名称空间、全局名称空间、局部名称空间

内置名称空间:python解释器自带的名字,python解释器启动就会生成

全局名称空间:文件级别定义的名字都会存放与全局名称空间,执行python文件时会产生

局部名称空间:定义在函数内部的名字,局部名称空间只有在调用函数时才会生效,函数调用结束则失效

3、加载的顺序:三者的加载顺序:内置名称空间->全局名称空间->局部名称空间

4、取值的顺序:局部名称空间->全局名称空间->内置名称空间7

# # max=10# def func(): #x=1## max=20#print(max)### func()# max=10## def func(): #x=1#max=20## print(max)# func()### print(max)## # x=0# def f1():## x=1#def f2():# # x=2# def f3():# # x=3# print(x)# f3()#f2()## f1()

二、作用域

1、范围:

全局作用域:内置名称空间与全局名称空间的名字属于全局范围,在整个文件的任意位置都能被引用,全局有效

局部作用域:局部名称空间的名字属于局部范围,只在函数内部可以被引用,局部有效

# x=1# def foo():#def f2():# print(x)#f2()# def bar():#print(x)## foo()# bar()# def f1():#x=1#def f2(): #f2=value# # x=2# print(x)#f2()# f1()x=1def func():x=2def f1():pass# print(dir(globals()['__builtins__'])) #全局作用域name# print(locals()) #局部作用域namefunc()print(globals() is locals())

2、作用顺序是:局部作用域》》》》》》全局作用域

三、函数嵌套

1、函数的嵌套定义

def f1():def f2():def f3():print('from f3')print('from f2')f3()print('from f1')f2()# print(f1)f1()

2、函数的嵌套调用

def max2(x,y):if x > y:return xelse:return ydef max4(a,b,c,d):res1=max2(a,b) #23res2=max2(res1,c) #23res3=max2(res2,d) #31return res3print(max4(11,23,-7,31))

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。