python-装饰(高阶函数)
python-装饰(高阶函数)
高阶函数
1、把一个函数名当做实参传给另外一个函数(在不修改被装饰函数源代码)
2、返回值 中包含函数名
高阶函数实现1的功能
def bar():
print("in the bar")
def test1(func):
print("in the test1")
print(func)
func() #func=bar func()=bar()
test1(bar) 打印结果
---------------------------------
in the test1
<function bar at 0x000001DA445500D0>
in the bar
#实现bar的运行时间的高阶函数
import time
def bar():
time.sleep(3)
print("in the bar")
def test1(func):
star_time=time.time()
func() #bar()
stop_time=time.time()
print("the func run time is %s"%(stop_time-star_time))
test1(bar) 打印结果
-----------------------------------
in the bar
the func run time is 3.0002150535583496
第二个功能实现
import time def bar():
time.sleep(3)
print("int the bar")
def test2(func):
print(func)
return func
print(test2(bar)) t=test2(bar)
bar=test2(bar)
t() #t()=bar()
print(t) bar=test2(bar) #覆盖原来的bar
bar() #不修改原来的调用方式 打印结果
——————————————————————————
<function bar at 0x00000224596500D0>
<function bar at 0x00000224596500D0>
<function bar at 0x00000224596500D0>
<function bar at 0x00000224596500D0>
int the bar
<function bar at 0x00000224596500D0>
<function bar at 0x00000224596500D0>
int the bar
python-装饰(高阶函数)的更多相关文章
- python基础——高阶函数
python基础——高阶函数 高阶函数英文叫Higher-order function.什么是高阶函数?我们以实际代码为例子,一步一步深入概念. 变量可以指向函数 以Python内置的求绝对值的函数a ...
- Python的高阶函数小结
一. 高阶函数定义 简而言之,Python的高阶函数就是指一个函数作为参数传递给另外一个函数的用法. 举一个最简单的高阶函数来说明: >>> def add(x,y,f): retu ...
- Python 基础 高阶函数
python 把函数作为参数 如果传入abs 作为参数 def add(x,y,y): return f(x) + f(y) add(-5,9,abs) 根据函数的定义,函数执行的代码实际上是. ab ...
- Python之高阶函数如何理解?
我们先要了解一下什么是所谓的高阶函数: 看定义:什么是高阶函数? 高阶函数:我们知道一个函数可以作为参数传给另外一个函数,或者一个函数的返回值为另外一个函数(若返回值为该函数本身,则为递归),如果满足 ...
- Python笔记-高阶函数
1.函数式编程 函数式编程就是一种抽象程度很高的编程范式,纯粹的函数式编程语言编写的函数没有变量. 函数式编程的一个特点就是,允许把函数本身作为参数传入另一个函数,还允许返回一个函数! 传入函数 既然 ...
- Python练习-高阶函数-2018.12.03
1.函数式编程的概念 在计算机的层次上,CPU执行的是加减乘除的指令代码,以及各种条件判断和跳转指令,所以,汇编语言是最贴近计算机的语言. 而计算则指数学意义上的计算,越是抽象的计算,离计算机硬件越远 ...
- 【Python】高阶函数介绍
其实函数可以作为变量,之前学过C++,对于这种用法并不奇怪.无非就是函数充当变量,可以传入函数而已. 下面分别介绍 Python 中常见的高阶函数:map/reduce, filter, sorted ...
- Python学习---高阶函数的学习
高阶函数 高阶函数:函数名可以作为参数传递输入,函数名还可以作为返回值返回 函数名可以重新赋值,因为其本身就是一个变量 函数本身就是一个对象, 函数的变量名f本身就是指向函数本身的,加上括 ...
- python 理解高阶函数
高阶函数 高阶函数英文叫Higher-order function.什么是高阶函数? 变量可以指向函数 以Python内置的求绝对值的函数abs()为例,调用abs(): >>> a ...
- python的高阶函数
函数式编程的一个特点就是,允许把函数本身作为参数传入另一个函数,还允许返回一个函数. 高阶函数 定义:一个函数就可以接收另一函数作为参数,这种函数就称之为高阶函数. map/reduce Python ...
随机推荐
- 小D课堂 - 新版本微服务springcloud+Docker教程_2_01传统架构演进到分布式架构
笔记 第二章 架构演进和分布式系统基础知识 1.传统架构演进到分布式架构 简介:讲解单机应用和分布式应用架构演进基础知识 (画图) 高可用 LVS+keepalive :负载均衡的知识点 1. ...
- java源码-LinkedHashMap类设计
LinkedHashMap 继承于 hashMap LinkedHashMap .Entry 继承 HashMap.Node 继承 Map.Entry类 LinkedHashMap .Entry 该E ...
- 1.Spring项目启动时,加载相关初始化配置
Spring项目启动时,会加载一些常用的配置: 1.加载spring上下文 SpringApplicationContextUtils.initApplicationContext(event.get ...
- maven中GroupID 和ArtifactID
artifactId :unique base name of the primary artifact being generated by this project GroupID 是项目组织唯一 ...
- Vue路由的跳转方式
Vue中路由的跳转方式 一.<router-link to=''></router-link> Header.vue <template> <header&g ...
- Java传统IO流和NIO流的简单对比介绍
通过对文件的拷贝来对比传统IO流和NIO流 将底层流封装成处理流以后进行分段读取. /*将本身源代码拷贝到TXT文件*/ public class TraditionIO { public stati ...
- java安全停止线程
Thread.stop()是一个被废弃的方法,不被推荐使用的原因是stop方法太过于暴力,强行把执行到一半的线程终止,并且会立即释放这个线程所有的锁.会破坏了线程中引用对象的一致性. 使用判断标志位的 ...
- MSF魔鬼训练营-3.2.1活跃主机扫描
概要: msf的arp_sweep .udp_sweep模块 Nmap -sn使用ping探测 -PU -sn 使用UDP协议端口探测 msf模块 arp_sweep 常用 ipv6_mult ...
- “automation服务器不能创建对象”的问题的解决方案大全
本人工作中的应用系统都是jsp的,大量javascript程序,一旦出“automation服务器不能创建对象”问题,大量报表及查询无法保存,苦思冥想.千尝万试,终于将其搞定,现将相关方案与大家共享. ...
- Spring Boot 五种热部署方式,极速开发就是生产力!
1.模板热部署 在 Spring Boot 中,模板引擎的页面默认是开启缓存的,如果修改了页面的内容,则刷新页面是得不到修改后的页面的,因此我们可以在application.properties中关闭 ...