python-函数&高阶函数&嵌套函数&装饰器

学习随笔:

简单介绍:

函数:函数即变量高阶函数:1.把一个函数名当做一个实参传给一个参数            2.返回值中包含函数名嵌套函数:函数内部再次定义函数装饰器:装饰器就是函数,是为了给其他函数添加功能        原则上不能改变被装饰函数的源代码,不能修改装是函数的调用方式

高价函数+嵌套函数=装饰器

代码如下:1.函数
1 #函数
2 def foo(name):#定义一个函数
3     print(‘is this foo name:‘,name)
4 foo(‘FOO‘)   #函数foo的调用
5 foo2=foo  #函数即变量,将foo作为实参传给foo2
6 foo2(‘FOO2‘) #foo2的调用,即foo的调

2.高阶函数

 1 #高阶函数
 2
 3 def test(func):
 4     start_time=time.time()
 5     func()
 6     end_time=time.time()
 7     print(‘函数func的运行时间:‘,str(start_time-end_time))
 8     return func
 9 def demo():
10     print("demo_%s开始运行\n睡眠3秒")
11     time.sleep(3)
12     print("demo_%s运行结束")
13 test(demo)   #传入函数实参,并执行
14 demo=test(demo)  #test(demo)返回一个函数实参给demo
15 demo() #demo执行

3.嵌套函数

 1 #嵌套函数
 2 def doc():
 3     name=‘loren‘
 4     def doc1():
 5         name=‘loren1‘
 6         def doc2():
 7             name=‘loren2‘
 8             print(‘name:‘,name)
 9         doc2()
10     doc1()
11 doc()

4.装饰器

 1 #装饰器1
 2
 3 def test(func):
 4     def warppr(*args,**kwargs):
 5         print(‘可以添加新功能&函数‘)
 6         print(‘执行原函数‘)
 7         func(*args,**kwargs)
 8     return warppr
 9 def demo(name):
10     print(‘demo_%s运行结束‘%name)
11
12 demo(‘loren‘)  #原函数demo的调用
13 demo=test(demo) #装饰函数demo
14 demo(‘loren2‘)  #装饰后函数demo的调用

python 内置装饰器:@

 1 #装饰器2
 2 def test(func):
 3     def warppr(*args,**kwargs):
 4         print(‘可以添加新功能&函数‘)
 5         print(‘执行原函数‘)
 6         func(*args,**kwargs)
 7     return warppr  #返回warppr函数的地址
 8 @test  #@test就相当于demo=test(demo)
 9 def demo(name):
10     print(‘demo_%s运行结束‘%name)
11
12 demo(‘loren‘) #装饰后函数demo的调用
 

原文地址:https://www.cnblogs.com/lorenjia/p/11100201.html

时间: 2024-07-30 16:22:22

python-函数&高阶函数&嵌套函数&装饰器的相关文章

5.初识python装饰器 高阶函数+闭包+函数嵌套=装饰器

一.什么是装饰器? 实际上装饰器就是个函数,这个函数可以为其他函数提供附加的功能. 装饰器在给其他函数添加功能时,不会修改原函数的源代码,不会修改原函数的调用方式. 高阶函数+函数嵌套+闭包 = 装饰器 1.1什么是高阶函数? 1.1.1函数接收的参数,包涵一个函数名. 1.1.2 函数的返回值是一个函数名. 其实这两个条件都很好满足,下面就是一个高阶函数的例子. def test1(): print "hamasaki ayumi" def test2(func): return t

【Python基础】高阶函数+函数嵌套+闭包 ==装饰器

高阶函数+函数嵌套+闭包 == 装饰器 一 什么是装饰器 二 装饰器需要遵循的原则 三 实现装饰器知识储备 四 高阶函数 五 函数嵌套 六 闭包 七 无参装饰器 八 装饰器应用示例 九 超时装饰器 参考: https://www.cnblogs.com/linhaifeng/articles/6140395.html https://www.cnblogs.com/haiyan123/p/8387769.html 原文地址:https://www.cnblogs.com/XJT2018/p/11

python学习三十四天函数高阶函数定义及用法

python函数高阶函数是把函数当成一个变量,传递给函数作为参数,或者函数的返回值里面有函数,都称为高阶函数, 1,把函数作为参数传递 def dac(x,y): return x+y def test(n): print(n) test(dac) 输出结果为 函数类型function 2,把函数做为返回值,也是高阶函数 def test(x,y): return abs,x,y 输出结果为 列表,包含 函数,参数 文章来自(www.96net.com.cn) 原文地址:https://www.

python的高阶函数和函数即变量

1:高阶函数 #高阶函数 定义:把函数作为参数作为另一个函数的参数 def test(a,b): return a*b def test_1(f,c): return f*c print(test_1(test(1,2),5)) 运行结果: 10 2:函数即变量 def foo(): print("in the foo") bar() def bar(): print("in the bar") foo() 运行结果: in the foo in the bar d

Oracle函数-高阶篇

下面整理了部分oracle函数-高阶篇: 1. CATSTR    举例:SELECT CATSTR(COLUMN_NAME) NAME_LIST FROM DBA_TAB_COLUMNS WHERE TRIM(TABLE_NAME) = 'T_RZ_DKDATA'  --查询出的结果在一个列中2. INSTR() 检索字符串函数:匹配则返回首次检索的位置的索引值(从1开始),值>0,否则返回值=0    举例:SELECT * FROM USER_TABLES WHERE INSTR(TABL

函数高阶

命名空间 又名name space, 顾名思义就是存放名字的地方,存什么名字呢?举例说明,若变量x=1,1存放于内存中,那名字x存放在哪里呢?名称空间正是存放名字x与1绑定关系的地方 名称空间共3种,分别如下 locals: 是函数内的名称空间,包括局部变量和形参 globals: 全局变量,函数定义所在模块的名字空间 builtins: 内置模块的名字空间 不同变量的作用域不同就是由这个变量所在的命名空间决定的. 作用域即范围 全局范围:全局存活,全局有效 局部范围:临时存活,局部有效 查看作

~~函数进阶(一):装饰器~~

进击のpython 函数进阶-装饰器 知道京东吧(不知道?那你知道淘宝,蘑菇街吧) 我们身为用户,在进入界面的时候 首先会提示我们登陆是吧 当我们登陆的时候,接下来的所有操作就不用再验证身份了 否则,一到收藏啊,关注啊,就需要我们重新登陆 那我们可不可以做一个这个呢?? 没有数据库,我们模拟一个数据库,懂我意思吧! DB = { "login": False, "user_name": "poddy", "password":

Python 基础 - Day 4 Learning Note - Decorator 装饰器

装饰器的知识准备 函数,函数参数 作用域: 全局变量,局部变量 变量解析规则:LEGB法则 - 假设嵌套函数(第二层函数),解析器查找内部函数的变量的顺序如下. 在任何一层先找到了符合要求的变量,则不再向外查找.如果没有,则抛出N Local - 本地函数内部,通过任何方式赋值的,而且没有被global关键字声明为全局变量的变量 Enclosing - 直接该内部函数的外围空间(即它的上层函数)的本地作用域.多层嵌套,则有内而外逐层查找,直至最外层的函数 Global - 全局空间(模块encl

Python 全栈开发五 迭代器 生成器 装饰器

一.迭代器 迭代器是一个可以记住遍历的位置的对象.迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束.迭代器只能往前不会后退. 迭代器有两个基本的方法:iter() 和 next(). 字符串,列表或元组对象都可用于创建迭代器,生成迭代器的方法是iter(): >>li = [1,2,3,4,5] >>it = iter(li) #生成一个迭代器 >>it.__next__() 1 >>next(it) #以上两种next都可以使用 2 >

python基础-第五篇-5.3装饰器

小白发呆的看着窗外,同事们陆陆续续的地来到公司,想起算法,小白就飘飘然了.突然后面传来一声呼唤,原来是小刘! 小刘:不好意思啊!堵车了,就来晚了点,不耽误你的时间,咱们就开启的今天的培训内容吧! 小白连忙说:没事,可以开始啦! 函数内存与执行函数 小刘:那我给你看一段代码,你看看会得到什么结果 def f1(): return 'F1' x = f1() print(x) x2 = f1 print(x2) 小白看了看,很快说出了x的输出值为‘F1’,但是看到x2这里,小白就有点想不通,小白就执