python极简教程06:生成式和装饰器
2022-01-14 17:06
991 查看
测试奇谭,BUG不见。
这一场,主讲python的生成式和装饰器。
目的:掌握四种生成式(列表、生成器、集合、字典),装饰器的原理和使用。
生成式
01 什么是生成式?
能够用一行代码,快速高效的生成数据。(这就不需要再通俗的讲解了吧)
02 列表生成式
举个例子:提取1-100之间的奇数
# 不用列表生成式 odd_list = [] for i in range(101): if i%2==1: odd_list.append(i) print(odd_list) # 使用列表生成式(更加简洁) odd_list = [i for i in range(101) if i%2==1] print(odd_list)
03 列表生成式
使用(),而不是 []
# 注意:这个不是生成tuple,而是生成器 odd_gen = (i for i in range(101) if i%2==1) print(odd_gen) -> <generator object <genexpr> at 0x00000206EEBFF750> print(type(odd_gen)) -> <class 'generator'> for i in odd_gen: print(i)
04 集合生成式
举个例子:列表元素去重
src_list = [1,1,1,2,2,3,4,5,5,6] res_set = {i for i in src_list} print(res_set) -> {1, 2, 3, 4, 5, 6}
05 字典生成式
举个例子:字典kv反转
src_dict = {"zhangsan":20,"lisi":21, "wangwu":33, "zhaoliu":10} rev_dict = {v:k for k,v in src_dict.items()} print(src_dict) -> {'zhangsan': 20, 'lisi': 21, 'wangwu': 33, 'zhaoliu': 10} print(rev_dict) -> {20: 'zhangsan', 21: 'lisi', 33: 'wangwu', 10: 'zhaoliu'} 装饰器
装饰器
01 什么是装饰器?
顾名思义:增强函数或类的功能的一个函数。
装饰器的作用:增强函数的功能,确切的说,可以装饰函数,也可以装饰类。
初学的你,还是太难理解?
02 通俗的讲解
你开视频聊天,觉得自己的颜值不在线,于是乎,你使用美颜,增强装饰自己的颜值。
对于美颜这个功能来说,你可以用,我可以用,所有人都可以用,以此来增强装饰自己的颜值。
03 如何定义一个装饰器
def decorator(func): def wrapper(*args,**kargs): # 可以自定义传入的参数 print(func.__name__) # 返回传入的方法名参数的调用 return func(*args,**kargs) # 返回内层函数函数名 return wrapper
04 如何使用一个装饰器
方法一:不用语法糖@符号
# 装饰器不传入参数时 f = decorator(函数名) # 装饰器传入参数时 f = (decorator(参数))(函数名)
方法二:采用语法糖@符号
# 定义的装饰器 @decorator def f(): pass # 执行被装饰过的函数 f()
再举个例子:计算函数时间
import time # 定义装饰器 def time_calc(func): def wrapper(args, kargs): start_time = time.time() f = func(args,kargs) exec_time = time.time() - start_time print(exec_time*1000) return f return wrapper # 使用装饰器 @time_calc def add(a, b): return a + b @time_calc def sub(a, b): return a - b add_result = add(1987190, 123423123123) sub_result = sub(12341234, 123222)
一如既往,做个总结
01 生成式和装饰器,是python高级编程的重要知识点;
02 工作中,使用他俩的频率特别高。
相关文章推荐
- python教程 内部函数、闭包和装饰器
- 06-python中的装饰器
- Python3匿名函数字典排序、生成式与生成器、装饰器简介
- 学习笔记(06):Python从入门到实战 基础入门视频教程(讲解超细致)-print函数详细讲解...
- python基础教程:详解 Python中LEGB和闭包及装饰器
- 学习笔记(06):Python入门教程-计算机如何区分数字和字符
- python基础教程:python 中的列表生成式、生成器表达式、模块导入
- Python 极简教程(十三)while 循环
- python入门基础教程06 python变量与函数
- python极简教程01:基础变量
- Python基础语法06 set集合 列表生成式 迭代器
- Python PIL图像处理开发极简教程
- Python极简详细入门教程,新手必看!
- 一份来自 StackOverflow 的最佳 Python 装饰器教程
- Python 极简教程(六)运算符
- Python 快速教程(Django06):假作真时
- Python教程学习简记11--Python decorator 装饰器
- Python入门教程-06 字符串
- Python教程:理解和使用装饰器 @decorator
- 廖雪峰python教程学习:装饰器@小结