字典推导式:

  1. data_list = ['1 hello','2 world']
  2. result = {item.split(" ")[0]: item.split(" ")[1] for item in data_list }
  3. print(result)
  1. data = 'wd=搜狗&rsv_spt=1&rsv_iqid=0xd787ab5d00049167&issp=1&f=8&rsv_bp=1&rsv_idx=2&ie=utf-8&tn=baiduhome_pg&rsv_enter=1&rsv_dl=tb&rsv_sug3=7&rsv_sug1=6&rsv_sug7=101&rsv_sug2=0&rsv_btype=i&inputT=1988&rsv_sug4=2956'
  2. res_list=data.split("&")
  3. res_dic = {item.split('=')[0]:item.split("=")[1] for item in data.split("&")}
  4. print(res_dic)
  1. '''
  2. 字典转化为string
  3. '''
  4. params = {'wd': '搜狗', 'rsv_spt': '1', 'rsv_iqid': '0xd787ab5d00049167', 'issp': '1', 'f': '8', 'rsv_bp': '1', 'rsv_idx': '2', 'ie': 'utf-8',
  5. 'tn': 'baiduhome_pg', 'rsv_enter': '1', 'rsv_dl': 'tb', 'rsv_sug3': '7',
  6. 'rsv_sug1': '6', 'rsv_sug7': '101', 'rsv_sug2': '0', 'rsv_btype': 'i',
  7. 'inputT': '1988', 'rsv_sug4': '2956'}
  8. li = []
  9. for key,value in params.items():
  10. # str=key+"="+value #相加效率低
  11. str = "{}={}".format(key,value)
  12. li.append(str)
  13. res = "&".join(li)
  14. print(res)
  15. res = "&".join(["{}={}".format(key,value) for key,value in params.items()])
  1. #集合推导式
  2. data = {i for i in range(10)}
  3. print(data)

闭包:函数嵌套函数,掉用外面函数 不想立即执行内容,在该函数内嵌套函数,让内部函数工作,可以在内部封装自己想要的东西

  1. def outer(name):
  2. def inner():
  3. msg = "{}".format(name)
  4. print(msg)
  5. return inner
  6. v = outer("Jack")
  7. v2 = outer("Lily")
  8. v()
  9. v2()

线程池:

装饰器:在不改变函数的基础上 想在函数执行前后定制功能

  1. def outer(a1):
  2. def inner():
  3. a1()
  4. return inner
  5. def x():
  6. print("xx")
  7. res = outer(x)
  8. res()
  1. @outer
  2. def plus(v1):
  3. return v1
  4. res = plus(1)
  5. print(res)
  6. def outer(func):
  7. def inner(*args,**kwargs):
  8. return func(*args,**kwargs)
  9. return inner
  10. @outer
  11. def plus(v1):
  12. return v1
  13. res = plus(1)
  14. print(res)
  1. """计算一个函数的执行时间"""
  2. import time
  3. def coast(arg):
  4. def inner():
  5. start = time.time()
  6. res = arg()
  7. end = time.time()
  8. print(end - start)
  9. return res
  10. return inner
  11. @coast
  12. def func():
  13. data = 0
  14. for i in range(10000000000):
  15. data += i
  16. return data
  17. func()
  1. def repeat_func(arg):
  2. def inner():
  3. result = 0
  4. for i in range(5):
  5. res = arg()
  6. result += res
  7. return result
  8. return inner
  9. @repeat_func
  10. def f1():
  11. return 123
  12. t = f1()
  13. print(t)
  1. def outer(args):
  2. def inner(a1,a2):
  3. return args(a1,a2)
  4. return inner
  5. @outer
  6. def plus(v1,v2):
  7. return v1+v2
  8. res = plus(1,3)
  9. print(res)
  10. def outer(args):
  11. def inner(a1):
  12. return args(a1)
  13. return inner
  14. @outer
  15. def plus(v1):
  16. return v1
  17. res = plus(1)
  18. print(res)
  19. def outer(func):
  20. def inner(*args,**kwargs):
  21. return func(*args,**kwargs)
  22. return inner
  23. @outer
  24. def plus(v1):
  25. return v1
  26. res = plus(1)
  27. print(res)
  1. """
  2. 带参数的装饰器
  3. """
  4. def tt(count):
  5. def outer(func):
  6. def inner(*args,**kwargs):
  7. r = 0
  8. for i in range(count):
  9. res = func(*args,**kwargs)
  10. r += res
  11. return r
  12. return inner
  13. return outer
  14. @tt(5)
  15. def f(x):
  16. return x
  17. res = f(100)
  18. print(res)

传统的装饰器是由两层嵌套,带参数的装饰器是三层。

python基础(三)装饰器的更多相关文章

  1. python基础—函数装饰器

    python基础-函数装饰器 1.什么是装饰器 装饰器本质上是一个python函数,它可以让其他函数在不需要做任何代码变动的前提下增加额外功能. 装饰器的返回值是也是一个函数对象. 装饰器经常用于有切 ...

  2. 十. Python基础(10)--装饰器

    十. Python基础(10)--装饰器 1 ● 装饰器 A decorator is a function that take a function as an argument and retur ...

  3. [python基础]关于装饰器

    在面试的时候,被问到装饰器,在用的最多的时候就@classmethod ,@staticmethod,开口胡乱回答想这和C#的static public 关键字是不是一样的,等面试回来一看,哇,原来是 ...

  4. Day11 Python基础之装饰器(高级函数)(九)

    在python中,装饰器.生成器和迭代器是特别重要的高级函数   https://www.cnblogs.com/yuanchenqi/articles/5830025.html 装饰器 1.如果说装 ...

  5. 1.16 Python基础知识 - 装饰器初识

    Python中的装饰器就是函数,作用就是包装其他函数,为他们起到修饰作用.在不修改源代码的情况下,为这些函数额外添加一些功能,像日志记录,性能测试等.一个函数可以使用多个装饰器,产生的结果与装饰器的位 ...

  6. python基础之装饰器(实例)

    1.必备 #### 第一波 #### def foo(): print 'foo' foo #表示是函数 foo() #表示执行foo函数 #### 第二波 #### def foo(): print ...

  7. 【Python基础】装饰器的解释和用法

    装饰器的用法比较简单,但是理解装饰器的原理还是比较复杂的,考虑到接下来的爬虫框架中很多用到装饰器的地方,我们先来讲解一下. 函数 我们定义了一个函数,没有什么具体操作,只是返回一个固定值 请注意一下缩 ...

  8. 学习PYTHON之路, DAY 5 - PYTHON 基础 5 (装饰器,字符格式化,递归,迭代器,生成器)

    ---恢复内容开始--- 一 装饰器 1 单层装饰器 def outer(func): def inner(): print('long') func() print('after') return ...

  9. Python开发【第一篇】Python基础之装饰器

    写代码要遵循开发封闭原则,虽然在这个原则是用的面向对象开发,但是也适用于函数式编程,简单来说,它规定已经实现的功能代码不允许被修改,但可以被扩展,即: 封闭:已实现的功能代码块开放:对扩展开发 #s2 ...

  10. python基础-----函数/装饰器

    函数 在Python中,定义一个函数要使用def语句,依次写出函数名.括号.括号中的参数和冒号:,然后,在缩进块中编写函数体,函数的返回值用return语句返回. 函数的优点之一是,可以将代码块与主程 ...

随机推荐

  1. js函数( 普通函数、箭头函数 ) 内部this的指向

    - 普通函数   | 具名普通函数.匿名普通函数,在不作为对象的属性值的情况下,其内部的 this 总是指向代码运行环境下的全局对象 ( 例如,浏览器中的 window ). 示例: (functio ...

  2. 【必知必会】手把手教你配置MySQL环境变量——图文详解

    一.先决条件 假设我们已经成功安装MySQL数据库.如果还有小伙伴不知道如何安装MySQL数据库,可以在本文下留言,留言数超20,则出一期"手把手教你安装MySQL数据库--图文详解&quo ...

  3. Springboot_maven多环境配置

    开发过程中总是需要多环境配置,而Spring自带的方式不是那么优秀,可以利用maven来帮助做到 可以再pom.xml中配置profiles来做到 打包命令: mvn clean package -P ...

  4. Mac_mysql_密码重置

    1 通过Mac 的设置 stop mysql 2 跳过权限认证 // 进入数据库指令文件 cd /usr/local/mysql/bin // 跳过权限认证 sudo ./mysqld_safe -- ...

  5. 为什么最近每份 Android 简历都说 “熟悉 MQTT 协议”?

    请点赞关注,你的支持对我意义重大. Hi,我是小彭.本文已收录到 GitHub · AndroidFamily 中.这里有 Android 进阶成长知识体系,有志同道合的朋友,关注公众号 [彭旭锐] ...

  6. spring的set注入方式流程图解

    spring的set注入方式流程图解 自己学习spring的一些笔记,详细画出了spring的set方式实现依赖注入的流程. 注意:<property name="UserDao&qu ...

  7. 使用kuboard部署某一个应用的pod分布于不同的主机上

    情况介绍 1.k8s集群有8个节点,3个节点是master,分别是master1,master2,master3. 5个worker节点,分别是worker1,worke2,worke3,worker ...

  8. rollup汇总作业-合并索引

    文章转载自:https://blog.csdn.net/UbuntuTouch/article/details/106194800

  9. electron 基础

    electron 基础 前文我们快速的用了一下 electron.本篇将进一步介绍其基础知识点,例如:生命周期.主进程和渲染进程通信.contextBridge.预加载(禁用node集成).优雅的显示 ...

  10. Centos7下的基本操作

    本系统是在centos7下最小化安装的 文件操作相关 创建文件夹mkdir name //创建一个文件夹 创建文本touch test.txt //创建文本 删除文件夹rm -rf 文件名 //删除文 ...