暂无分类
暂无标签
发布于2021-02-27 15:21 阅读(109) 评论(0) 点赞(9) 收藏(5)
0
1
2
3
4
5
6
装饰器使用@+函数名
def can_PlayGame(fn):
print('外置函数被调用')
def inner(name, game, **kwargs):
clock = kwargs.get('clock', 22)
if clock > 22:
print('现在已经{}点了,该休息啦'.format(clock))
else:
fn(name, game)
return inner
@can_PlayGame # 装饰器的使用
def PlayGame(name, game):
print('{}正在玩{}游戏'.format(name, game))
# 装饰器的调用流程
# 代码在调用函数PlayGame函数时:
# 第一步先调用can_PlayGame函数
# 第二步将PlayGame作为参数给到被装饰的函数can_PlayGame传给fn
# 第三步当再次调用PlayGame函数时,PlayGame函数已经不再是之前定义的PlayGame函数,
# 而是被重新定义的inner函数
PlayGame('张三', '吃鸡', clock=23)
# /usr/bin/python3
# —*— encoding:utf-8 —*—
def Can_Play(clock):
def Second(fn):
print('Second函数被调用')
def Third(name, game, **kwargs):
clock = kwargs.get('clock', 21)
if clock > 21:
return '现在已经{}点了,该休息了'.format(clock)
return fn(name, game)
return Third
@Can_Play(22)
def Play_Game(name, game):
return '{}正在玩游戏:{}'.format(name, game)
print(Play_Game('zhangsan', 'test', clock=23))
原文链接:https://blog.csdn.net/weixin_44602192/article/details/114032379
0
1
2
3
4
5
作者:我是女王
链接: https://www.pythonheidong.com/blog/article/860113/792b9fcaf4d2989ae734/
来源: python黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
Copyright © 2018-2021 python黑洞网 All Rights Reserved 版权所有,并保留所有权利。 京ICP备18063182号-1
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!