python中的装饰器
装饰器
- 作用
- 在不修改函数原有代码的前提下 给函数增加新的功能
- 需要迭代 修改 原始代码
- 希望不要破坏原始代码的封装性
- 通过装饰器来解决这个问题
- 需要迭代 修改 原始代码
- 在不修改函数原有代码的前提下 给函数增加新的功能
- 语法
- 闭包
- 装饰器的一个重要的组成部分
- 闭包就是为了组成装饰器的
- 闭包的语法规则(不是固定死的 方便记忆总结了以下规则)
- 需要有函数嵌套
- 外层函数的参数 需要再内层函数中使用
- 外层函数的返回值 为内层函数的函数名
- 闭包
# 装饰器
# def login():
# print("登陆界面")
#
# def login_data_base():
# print("登陆数据库")
#
#
# login()
#
# login_data_base()
# 闭包 ==> 装饰器
def func_out(func):
def func_in():
print("验证")
# func就想相当于foo函数
func()
return func_in
# foo = func_out(foo)
# foo() == a() == func_in()
# foo()
# 注意: 这里的@func_out是python中的语法 装饰器
# 他的作用就等价于 foo = func_out(foo)
@func_out
def foo():
print("登陆界面")
@func_out
def login():
print("登陆界面")
@func_out
def login_data_base():
print("登陆数据库")
# login()
#
login_data_base()