高阶函数代码形式:(1.函数接收的参数是一个函数名 2.函数的返回值是一个函数名)
def too():print('from too')     #高阶函数
def foo():print('from foo')return too
a = foo()
a()

def too():print('from too')
def foo(func):print('from foo')func()
a = foo(too)


函数嵌套 定义一个函数,在该函数的代码块中在定义函数(可以一直定义下去)
def foo():print('from in foo')def too():print('from in too')return too
too = foo()
too()

闭包,将变量(函数本身也是一种变量)用函数封装起来
def foo():def woo():print('闭包')return woo
woo = foo()
woo()

装饰器:
什么是装饰器. 装饰器是一个函数(具有高阶函数,嵌套函数,闭包等的特性),作用:装饰器就是装饰函数的,及给函数添加功能原则:1.不改变被装饰的函数的内部代码 2.不改变被装饰函数的调用方式

例如:给一个函数加一个测试函数调用时间的装饰器
import time
def foo(func):def woo(*args,**kwargs):a = time.time()                #定义了一个具有计算函数运行时间的装饰器res = func(*args,**kwargs)b = time.time()print(b - a)return resreturn woo

语法规定,@foo等同与two = foo(two).作用是在给不同的函数加装饰器时,只要在函数的前面加上@装饰器的函数名就可以了.不需要给函数添加功能的就不需要加.(同时,还可以给函数加多个装饰器)运行加了装饰器的函数,实质上是在运行装饰器(把函数放在装饰器内部运行)
@foo
def two(name,age):time.sleep(1)print('我叫%s,今年%s岁'%(name,age))return '不错'
#two = foo(two)
res1 = two('jiang','18')
print(res1)

 

转载于:https://www.cnblogs.com/jiangxiaolong-1996/p/9277871.html

装饰器,闭包,高阶函数,嵌套函数相关推荐

  1. 初学者python笔记(装饰器、高阶函数、闭包)

    一个函数被定义完成后,甚至程序发布后,后期可能需要添加某些功能,但是我们不可能每次都去修改原函数的代码,这时候装饰器就可以上场了,本篇文章将会用一个个可实现的代码,由浅入深.循序渐进得阐述装饰器的强大 ...

  2. python中高阶函数和装饰器_Python高阶函数与装饰器函数的深入讲解

    本文主要介绍的是Python高阶函数与装饰器函数的相关内容,分享给大家,下面话不多说了,来一起看看详细的介绍吧 高阶函数 1.可以使用函数对象作为参数的函数 2.或可以将函数作为返回值的函数 3.函数 ...

  3. Python装饰器、生成器、内置函数、Json-Day05

    装饰器 装饰器本质上就是一个python函数,它可以让其他函数在不需要做任何代码变动的前提下增加额外功能,装饰器的返回值也是一个函数对象.它经常用于有切面需求的场景,比如:插入日志.性能测试.事务处理 ...

  4. Python学习(十)——高阶内置函数

    内置函数 内置函数 高阶内置函数 abs().sum().round() map() filter() sorted() max().min() 内置函数 内置函数:python提供的,可以直接使用 ...

  5. 装饰器 闭包 生成器 迭代器

    2018-02-21  16:15:56 定义:本质是函数,(装饰其他函数)为其他函数增加附加功能 装饰器原则 不能修改被装饰函数的源代码 不能修改被装饰函数的调用方式 说白了,就是被装饰函数不知道装 ...

  6. python函数def里面嵌套def_python 函数嵌套函数_Python中的嵌套函数

    python 函数嵌套函数 A nested function is simply a function within another function, and is sometimes calle ...

  7. day4 高阶函数 嵌套函数 装饰器 内置函数 列表生成式 迭代器 生成器

    一.函数即变量 1.赋值效果图 a = 1  b = a def func(): print('hello') func 是函数名,相当于变量名,print('hello')是函数体,相当于变量的值, ...

  8. python-迭代器_高阶函数

    1. 迭代器 迭代器 : ​ 能被next调用,并不断返回下一个值的对象,叫做迭代器(对象) 概念 : ​ 迭代器指的是迭代取值的工具,迭代是一个重复的过程,每次重复都是基于上一个结果而继续的 ​ 单 ...

  9. python中的装饰器有哪些-Python中的@函数装饰器到底是什么?

    在解释@函数装饰器之前,先说一下,类中的类方法和静态方法. 在Python中完全支持定义类方法.静态方法.这两种方法很相似,Python它们都使用类来调用(ps:用对象调用也可以). 区别在于:Pyt ...

最新文章

  1. MySQL面试题 | 附答案解析(十一)
  2. Vue API(directives) 自定义指令
  3. as [Frame]元标签
  4. 程序员裸辞求夸,众网友上演大型夸夸秀现场:楼主好样的
  5. 第十六届智能车竞赛赛道设计第一版本
  6. 支付宝2018年账单发布,更注重用户隐私保护
  7. csv数据去重 python_python批量查询、汉字去重处理CSV文件
  8. 个人项目api接口_5个免费有趣的API,可用于学习个人项目等
  9. ansys 内聚力_内聚力 软件工程
  10. unix iorp等待队列_FreeRTOS+POSIX之消息队列API详解
  11. 华为nova 5z即将亮相:麒麟810+3200万人像超级夜景
  12. 【编译工具系列】之GCC文件关联
  13. 史上最强的下载器,没有之一
  14. 低功耗实例——isolation cell及level shifter的选择
  15. php计算macd,MT4里的MACD和平常所用的MACD计算公式是什么?
  16. Latex中thebibliography后面的数字的含义
  17. 微信h5禁止分享和复制链接 超简单
  18. Oracle PL / SQL – UPDATE触发器之前的示例
  19. PS练习7——蒙版的使用
  20. 3、python学习笔记第三课:程序格式和构成

热门文章

  1. ubuntu20上安装starUML3
  2. BugkuCTF-Misc:想蹭网先解开密码
  3. 在汇编程序中调用C函数
  4. 16位模式/32位模式下PUSH指令探究——《x86汇编语言:从实模式到保护模式》读书笔记16
  5. Tensorflow2.x.x全卷积神经网络(CNN)
  6. 深入理解pthread_cond_wait、pthread_cond_signal
  7. JVM_06 垃圾回收相关算法 [ 一 ]
  8. 【译】Alethio: Lighting Up the Blockchain with Real Time Data
  9. How to save your Ethereum Dapp users from paying gas for transactions
  10. Tensorflow Day17 Sparse Autoencoder