装饰器

通俗的讲,装饰器就是在不改变源代码基础上,给源代码增加新功能。

不改变函数的源代码、调用方式、返回值等,给函数增加新功能。

经典案例:登录装饰器,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学习之路-装饰器生成器正则表达式相关推荐

  1. Python学习之路-装饰器生成器正则表达式

    装饰器 通俗的讲,装饰器就是在不改变源代码基础上,给源代码增加新功能. 不改变函数的源代码.调用方式.返回值等,给函数增加新功能. 经典案例:登录装饰器, def login_decorator(fu ...

  2. Python学习之路--装饰器

    三元运算 变量 = 条件返回True的结果 if 条件 else 条件返回False ,用于简单 import time time.time() 1970年至今多少秒 time.sleep()暂时休眠 ...

  3. Python学习之路——装饰器

    开放封闭原则:不改变调用方式与源代码上增加功能 ''' 1.不能修改被装饰对象(函数)的源代码(封闭) 2.不能更改被修饰对象(函数)的调用方式,且能达到增加功能的效果(开放) ''' View Co ...

  4. python文件下载速度 装饰器_python学习笔记之---装饰器

    # -*- coding:utf-8 -*- '''示例1: 最简单的函数,表示调用了两次''' def myfunc(): print ("myfunc() called.") ...

  5. 我对python的理解_python之我对装饰器的理解

    从一开始学习python的时候,就一直不是很理解装饰器是个什么东东,再看了很多篇博文和自己动手敲了好多代码后,算是略有了解. 我理解的装饰器是: 在不改变原有函数调用的情况下,对其进行包装,使其变成另 ...

  6. python str 换行_Python学习之路(1)

    一.Python3.x IDLE的安装(windows) 1.Python 官网:https://www.python.org/ 2.Downloads---- --->Windows--- - ...

  7. python画大象_Python学习之路(01)-- Python基础

    一. 初识Python-HelloWorld 1 #!/usr/bin/env python 2 #当py文件为可执行程序时,需添加该项 3 4 5 #coding: utf-8 6 7 print( ...

  8. python socket 书籍_Python学习之路——socket

    一.Socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄,可以用来实现不同虚拟机或不同计算机之间的通信. socket服务端示例: importsocket ...

  9. python知识体系_python学习知识体系梳理

    工作后,先后几份工作都是跟数据处理相关的,但是没有什么技术含量,有感于手上没有一门精通的技术实在很限制个人的发展,所以想选择一门编程语言来增强自己的本领,提升自己的价值.之所以选择Python,是因为 ...

最新文章

  1. 第十一篇:Discourse 话语/论述
  2. 题目1209:最小邮票数
  3. 【模型解读】历数GAN的5大基本结构
  4. openlayers基础(一)——Map
  5. 【报错笔记】关于tomcat启动不了,闪退问题。
  6. kotlin项目开发基础之gradle初识
  7. 紧急!你用的是这20家 VPS 吗?它们疑似马上要携款跑路!
  8. 将类似 Fri Jun 14 2019 00:00:00 GMT+0800 (中国标准时间) 的日期转化为 XXXX-XX-XX的形式...
  9. 二、python小项目模块(制作.npy形式数据集、图像添加随机噪声、将.npy的数据合成图像、创建文件夹)
  10. 软件开发:关于园林绿化工中级理论知识题题库的软件内容
  11. bootstrap之栅格化
  12. 利用ckplayer播放视频
  13. 电机控制器,FPGA 硬件电流环 基于FPGA的永磁同步伺服控制系统的设计
  14. UE4项目迁移----纯蓝图项目
  15. E4A MPChart折线图 曲线图
  16. HC32F460驱动ws2812及流水灯灯效实现方法
  17. [BSidesCF 2020]Had a bad day1
  18. Axure的下载和安装
  19. 微服务链路追踪SkyWalking
  20. 明解C语言入门练习13

热门文章

  1. Leetcode--1248. 统计「优美子数组」(java)
  2. php 二进制权限,基于二进制位的权限控制(数据库里的二进制)
  3. android高德天气api接口,天气查询-API文档-开发指南-Web服务 API | 高德地图API
  4. oracle session_wait,转载:学习Oracle动态性能表-(8)-V$SESSION_WAIT,V$SESSION_EVENT
  5. C++ 多继承中的多义性
  6. 无法安装64位版本的office,因为在您的PC上找到了以下32位程序:microsoft visio professional 2013
  7. Scrapy源码阅读分析_5_Scrapy-settings源码分析
  8. 上传图片和音频到Server,再转存到DB
  9. php return 值_php return的用法是什么
  10. 微软 rms服务器端,微软RMS服务器部署之准备篇