Python中也有作用域的概念
① 全局作用域:函数外部的区域就是全局作用域
② 局部作用域:函数内部的区域就是局部作用域
函数分为全局变量和局部变量
全局变量可以在函数外部访问也可以在函数内部访问,局部变量只能在函数运行时被访问且只能在函数内部局部作用域被访问当函数执行完毕后,期内部的变量会随着函数的执行结束,而自动销毁。
闭包形成:
1、有嵌套
2、有引用
3、有返回
f=outer()
f()
闭包保证局部变量在函数执行完毕以后不会消失
输出结果11,12,13
闭包保证局部变量在函数执行完毕以后不会消失,每次在这个变量的基础上完成一些列的操作
装饰器雏形:
#在原有函数基础上添加一个新功能
def check(fn):
def inner():#有嵌套
print('请先登录')
fn() #有引用
return inner #有返回
#原有函数:主要功能实现发表评论
@check
def comment():
print('发表评论')
#原有函数调用方式
comment()
import time
def logging(fn):
def inner(*args,**kwargs):
print(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))
result=fn(*args,**kwargs)
return result
return inner
@logging
def sum_num(*args,**kwargs):
result=0
for i in args:
result+=i
for i in kwargs.values():
result+=i
return result
print(sum_num(1, 2, a=3, b=4, c=5))