Python教程

初学Python-day12 装饰器函数

本文主要是介绍初学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))

 

这篇关于初学Python-day12 装饰器函数的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!