初学Python-day12 装饰器函数

装饰器

 

1.概念

本质就是一个Python函数,其他函数在本身不变的情况下去增加额外的功能,装饰器的返回值是一个函数。

常用的场景:插入日志,事务处理,缓存,权限校验等。

2.普通函数回顾

1 def speak():
2     print('hello world')
3 
4 say = speak
5 say()

 

3.函数的嵌套

1 def test1():
2     def test2():
3         print('test2')
4     def test3():
5         print('test3')
6     return test2
7 test2 = test1()
8 test2()

 

4.函数作为参数传递

 

 1 def fun1(arg):
 2     def test1():
 3         print('---')
 4         arg()
 5         print('---')
 6     return test1
 7 
 8 def say():
 9     print('hello world!')
10 
11 test1 = fun1(say)
12 test1()

 

5.装饰器

 1 def fun1(arg):
 2     def test1():
 3         print('=========')
 4         arg()
 5         print('=========')
 6         return True
 7     return test1
 8 
 9 
10 @fun1
11 def say():
12     print('hello world!')
13 
14 say()
15 print(say.__name__)

 

6.带参数的装饰器

如果需要给装饰器传入参数,则在嵌套一层函数即可

 1 from datetime import datetime
 2 
 3 
 4 def log(text):
 5     def decorator(fun1):
 6         def warrper(*args, **kwargs):
 7             print(text, fun1.__name__)
 8             return fun1(*args, **kwargs)
 9         return warrper
10     return decorator
11 
12 
13 @log('text')
14 def now():
15     print(datetime.now())
16 
17 now()
18 print(now.__name__)

 

 

7.偏函数

--int函数

将字符串中的数值转换为十进制

1 print(int('10'))
2 print(int('10', base=2))

 

上一篇:深入学习Java中的字符串,代码点和代码单元


下一篇:快速排序及优化方案