python中关于装饰器的学习


本文摘自php中文网,作者黄舟,侵删。

定义:本质上就是个函数,(装饰器其他函数)就是为了给其他函数添加附加功能

原则:1.不能修改被装饰的函数的源代码

2.不能修改被装饰的函数的调用方式

1

2

3

4

5

6

7

8

9

10

11

12

13

import time

def timer(hello):

    def func(*args,**kwargs):    #函数传参,不限个数。

        start = time.time()

        hello(*args,**kwargs)    #函数传参,不限个数。

        end = time.time()

        print("运行时间:%s"%(end - start))

    return func

@timer

def hello():

    time.sleep(2)

    print("nihao")

hello()

注:装饰器得写在被装饰函数的上面。

小实验:密码验证

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

import time

user = {                           #存储用户名和密码

    "luozeng":'123',

    "xuemanfei":'456',

    "xutian":'789'

}

 

def yanzheng(hello):

    def func(*args,**kwargs):

        start = time.time()

        username = input("请输入用户:").strip()     #用户输入

        password = input("请输入密码:").strip()

        if username in user and password == user[username]:        #用户名和密码验证

            print("登陆成功")

            hello(*args,**kwargs)

        else:

            exit("用户名或密码错误!")

        end = time.time()

        print("运行时间:%s"%(end - start))

    return func

@yanzheng

def hello():

    print("你好!")

hello()

以上就是python中关于装饰器的学习的详细内容,更多文章请关注木庄网络博客!!

相关阅读 >>

Python中lambda函数的用法介绍(附示例)

适合利用Python合并多个装饰器?

Python使用cx_oracle模块操作oracle数据库详解

Python安装什么软件

Python 查找字符在字符串中的位置实例

Python中常见字符串方法推荐

Python中type()是什么意思

Python需要英语基础吗

Python中+=连用是什么意思

Python爬虫对dota排行榜爬取的实例

更多相关阅读请进入《Python》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...

    正在狠努力加载,请稍候...