Python 官方文档:入门教程 => 点击学习
#!/usr/bin/env python #coding:utf-8 """ 装饰器实例拆解 """ def login00(func): print('00请通过验证用户!') return func def
#!/usr/bin/env python
#coding:utf-8
"""
装饰器实例拆解
"""
def login00(func):
print('00请通过验证用户!')
return func
def tv00(name):
print('00你的用户是:%s' %name)
# 装饰器的精简工作原理解释:
tv = login00(tv00) # 返回tv函数的对象,赋值给tv
tv('yh00') # 调用执行tv函数
# 魔方版装饰器
def login01(func):
print('01请通过验证用户!')
return func
@login01
def tv01(name):
print('01你的用户是:%s' %name)
tv01('yh01')
# 存在一个问题,调用执行tv函数前,会执行login函数的print语句
# 改进版装饰器
def login02(func):
def inner(arg):
print('02请通过验证用户!')
func(arg)
return inner
def tv02(name):
print('02你的用户是:%s' %name)
tv02 = login02(tv02) # 返回inner函数的对象,赋值给tv02;并把 tv02函数的对象 传递给 login02函数的形参 func
tv02('yh02') # 调用执行tv02函数,把实参:yh02 传给 形参arg;执行tv02('yh02')
# 改进 魔方版 版装饰器
def login03(func):
def inner(arg):
print('03请通过验证用户!')
func(arg)
return inner
@login03
def tv03(name):
print('03你的用户是:%s' %name)
tv03('yh03')
--结束END--
本文标题: Python 装饰器工作原理解析
本文链接: https://www.lsjlt.com/news/189453.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-03-01
2024-03-01
2024-03-01
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0