day43 装饰器(上)
学习日期:20241020
学习目标:函数﹣- 56 装饰器:函数嵌套的定义与调用的区别
学习笔记:
变量作用域
变量读取顺序:local-》enclosed-》global-》builtin
# 变量作用域
# 全局变量
number=100
def foo():
number2 = 200 # 本地变量
print(f'函数内部{number2}')
# 优先调用本地变量,未找到本地变量会调用全局变量
foo() # 函数内部200
# 函数外部不可调用函数内部变量
print(f'函数外部{number2}') # 提示 name 'number2' is not defined
闭包
# 闭包
def out():
number3=120 # 闭包变量
def fun_in():
return number3
return fun_in
f=out() # 返回对象 fun_in ,也可以写成out()()
print(f()) # 调用fun_in函数,返回number3的值120
总结
- 变量作用域保证同名,但不同作用范围不会出现引用错误
- 闭包作用域之内,内部函数可以访问外部函数的变量