+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

2020-04(14)

2020-05(27)

2020-06(51)

2020-07(33)

2020-08(40)

Python 装饰器的使用

发布于2021-02-27 15:21     阅读(109)     评论(0)     点赞(9)     收藏(5)


0

1

2

3

4

5

6

Python 装饰器的使用

装饰器使用@+函数名

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)

在这里插入图片描述

Python 高级装饰器

在这里插入图片描述

# /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黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

9 0
收藏该文
已收藏

评论内容:(最多支持255个字符)