其中global与nonlocal是改变自己作用域范围外变量的值---闭包, 引入局部变量, 全局变量等


a = 10


def func():
b = 6

def inner():
print(a, b) # 引入可以随意使用, 反正都在他的作用域内部, 其中global与nonlocal是改变自己作用域范围外变量的值

inner()


func()

#
1---函数可以作为参数进行传递 # def func(): # 定义函数 # print("我是函数") # # # def sin(fn): # 以函数作为参数进行传递 # fn() # # # sin(func) # # 2---函数可以作为返回值进行传递 # def func1(): # def inner(): # print("12255") # # return inner # # # func1() # 3---函数名称可以当成一个变量一样的进行赋值 # def func1(): # print("我是函数1") # # # def func2(): # print("我是函数2") # # # func1 = func2 # # func1() # 1---在局部引入全局的局部变量[global] # a = 10 # # # def inner(): # 闭包函数 # global a # 在局部环境中引用全局环境中的变量 # a = 20 # 局部函数inner中的局部变量a # print(a) # # # inner() # print(a) # 2---在局部引入外层的局部变量[nonlocal] def func(): b = 9 def func1(): nonlocal b # 向外一层引入局部变量, 如果有就引入, 如果没有就继续向外一层, 直到全局, 但是不包括全局 print("引入的值", b) b = 6 print(b) func1() print("变量被改变成新的值", b) # 变量被改变 func()

 

posted @ 2022-06-09 09:55  acwecc  阅读(35)  评论(0)    收藏  举报