python正则表达式生成器_Python学习之路-装饰器生成器正则表达式
装饰器
通俗的讲,装饰器就是在不改变源代码基础上,给源代码增加新功能。
不改变函数的源代码、调用方式、返回值等,给函数增加新功能。
经典案例:登录装饰器,def login_decorator(func):
def inner():
if USER_TEMP["status"] == False:
print("\033[31;1m用户未登录,请先登录\033[0m")
login_atm()
func()
return inner
@login_decorator
def withdrawals():
print("取款函数。。。。")
说白了,给函数增加新功能,就是把这个函数当作参数传到另一个函数里面。
生成器
通过列表生成式,我们可以直接创建一个列表。但是,受到内存限制,列表容量肯定是有限的。而且,创建一个包含100万个元素的列表,不仅占用很大的存储空间,如果我们仅仅需要访问前面几个元素,那后面绝大多数元素占用的空间都白白浪费了。
所以,如果列表元素可以按照某种算法推算出来,那我们是否可以在循环的过程中不断推算出后续的元素呢?这样就不必创建完整的list,从而节省大量的空间。在Python中,这种一边循环一边计算的机制,称为生成器:generator。
要创建一个generator,有很多种方法。第一种方法很简单,只要把一个列表生成式的[]改成(),就创建了一个generator:>>> L = [x * x for x in range(10)]
>>> L
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
>>> g = (x * x for x in range(10))
>>> g
at 0x1022ef630>
创建L和g的区别仅在于最外层的[]和(),L是一个list,而g是一个generator。
如果要一个一个打印出来,可以通过next()函数获得generator的下一个返回值:>>> next(g)
0
>>> next(g)
1
>>> next(g)
4
>>> next(g)
9
>>> next(g)
16
>>> next(g)
25
>>> next(g)
36
>>> next(g)
49
>>> next(g)
64
>>> next(g)
81
>>> next(g)
Traceback (most recent call last):
File "", line 1, in
StopIteration
如果生成器中没有更过元素时,调用next(g)会抛出StopIteration的错误
所以,我们创建了一个generator后,基本上永远不会调用next(),而是通过for循环来迭代它,并且不需要关心StopIteration的错误:>>> g = (x * x for x in range(10))
>>> for n in g:
... print(n)
...
0
1
4
9
16
25
36
49
64
81
正则表达式
re模块。常用正则表达式符号:
常用语法函数:
python正则表达式生成器_Python学习之路-装饰器生成器正则表达式相关推荐
- Python学习之路-装饰器生成器正则表达式
装饰器 通俗的讲,装饰器就是在不改变源代码基础上,给源代码增加新功能. 不改变函数的源代码.调用方式.返回值等,给函数增加新功能. 经典案例:登录装饰器, def login_decorator(fu ...
- Python学习之路--装饰器
三元运算 变量 = 条件返回True的结果 if 条件 else 条件返回False ,用于简单 import time time.time() 1970年至今多少秒 time.sleep()暂时休眠 ...
- Python学习之路——装饰器
开放封闭原则:不改变调用方式与源代码上增加功能 ''' 1.不能修改被装饰对象(函数)的源代码(封闭) 2.不能更改被修饰对象(函数)的调用方式,且能达到增加功能的效果(开放) ''' View Co ...
- python文件下载速度 装饰器_python学习笔记之---装饰器
# -*- coding:utf-8 -*- '''示例1: 最简单的函数,表示调用了两次''' def myfunc(): print ("myfunc() called.") ...
- 我对python的理解_python之我对装饰器的理解
从一开始学习python的时候,就一直不是很理解装饰器是个什么东东,再看了很多篇博文和自己动手敲了好多代码后,算是略有了解. 我理解的装饰器是: 在不改变原有函数调用的情况下,对其进行包装,使其变成另 ...
- python str 换行_Python学习之路(1)
一.Python3.x IDLE的安装(windows) 1.Python 官网:https://www.python.org/ 2.Downloads---- --->Windows--- - ...
- python画大象_Python学习之路(01)-- Python基础
一. 初识Python-HelloWorld 1 #!/usr/bin/env python 2 #当py文件为可执行程序时,需添加该项 3 4 5 #coding: utf-8 6 7 print( ...
- python socket 书籍_Python学习之路——socket
一.Socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄,可以用来实现不同虚拟机或不同计算机之间的通信. socket服务端示例: importsocket ...
- python知识体系_python学习知识体系梳理
工作后,先后几份工作都是跟数据处理相关的,但是没有什么技术含量,有感于手上没有一门精通的技术实在很限制个人的发展,所以想选择一门编程语言来增强自己的本领,提升自己的价值.之所以选择Python,是因为 ...
最新文章
- 第十一篇:Discourse 话语/论述
- 题目1209:最小邮票数
- 【模型解读】历数GAN的5大基本结构
- openlayers基础(一)——Map
- 【报错笔记】关于tomcat启动不了,闪退问题。
- kotlin项目开发基础之gradle初识
- 紧急!你用的是这20家 VPS 吗?它们疑似马上要携款跑路!
- 将类似 Fri Jun 14 2019 00:00:00 GMT+0800 (中国标准时间) 的日期转化为 XXXX-XX-XX的形式...
- 二、python小项目模块(制作.npy形式数据集、图像添加随机噪声、将.npy的数据合成图像、创建文件夹)
- 软件开发:关于园林绿化工中级理论知识题题库的软件内容
- bootstrap之栅格化
- 利用ckplayer播放视频
- 电机控制器,FPGA 硬件电流环 基于FPGA的永磁同步伺服控制系统的设计
- UE4项目迁移----纯蓝图项目
- E4A MPChart折线图 曲线图
- HC32F460驱动ws2812及流水灯灯效实现方法
- [BSidesCF 2020]Had a bad day1
- Axure的下载和安装
- 微服务链路追踪SkyWalking
- 明解C语言入门练习13
热门文章
- Leetcode--1248. 统计「优美子数组」(java)
- php 二进制权限,基于二进制位的权限控制(数据库里的二进制)
- android高德天气api接口,天气查询-API文档-开发指南-Web服务 API | 高德地图API
- oracle session_wait,转载:学习Oracle动态性能表-(8)-V$SESSION_WAIT,V$SESSION_EVENT
- C++ 多继承中的多义性
- 无法安装64位版本的office,因为在您的PC上找到了以下32位程序:microsoft visio professional 2013
- Scrapy源码阅读分析_5_Scrapy-settings源码分析
- 上传图片和音频到Server,再转存到DB
- php return 值_php return的用法是什么
- 微软 rms服务器端,微软RMS服务器部署之准备篇