第五十二节 高阶函数High Order Functions

  • 前言
  • 实践

前言

高阶函数的使用包含两种情况,一种是将另一个函数作为参数,另一种是返回一个函数。

实践

我们先来讲解第一种情况,一个函数将另一个函数作为参数。我们这里先定义两个函数,分别将一个字符串中的字母全部大写/小写:

def Upper(text):return text.upper()def Lower(text):return text.lower()

然后我们定义一个函数,其将Upper函数或Lower函数作为参数,目的是给定一个字符串能调用这两个函数执行操作:

def Hello(func, text):text = func(text)return text

可见我们的Hello函数有两个参数,一个是func用于指定调用哪个函数进行字符串转换,另一个是text用于指定被作用文本:

print(Hello(Lower, "Hello"))
>>> hello

可见字符串中的字母全部被小写了,此时我们将函数Hello称为高阶函数。
我们接下来介绍另一种情况,即返回一个函数,我们这里以加法计算为例作为说明:

def Calculate(number1):number1 += 5def Sum(number2):return number1 + number2return Sum

可见,Calculate函数会先对传入参数加5,然后返回函数Sum。我们如何调用这种高阶函数呢?第一种方式是:

print(Calculate(1)(2))
>>> 8

也即将要传入的参数依次排列,把每一个函数的参数用括号包起来即可,第二种方式是:

func = Calculate(1)
print(func(2))
>>> 8

也即先调用Calculate函数,返回Sum函数,再给Sum函数传参得到最终的计算结果。

以上便是高阶函数的全部内容,感谢大家的收藏、点赞、评论。我们下一节将介绍匿名函数(Lambda Function),敬请期待~

Python编程基础:第五十二节 高阶函数High Order Functions相关推荐

  1. python基础之常用的高阶函数

    前言 高阶函数指的是能接收函数作为参数的函数或类:python中有一些内置的高阶函数,在某些场合使用可以提高代码的效率. map() map函数可以把一个迭代对象转换成另一个可迭代对象,不过在pyth ...

  2. python order函数_Python进阶内容(一)--- 高阶函数 High order function

    0. 问题 # 本文将围绕这段代码进行Python中高阶函数相关内容的讲解 # 文中所有代码的兼容性要求为:Python 3.6,IPython 6.1.0 def addspam(fn): def ...

  3. 一文看懂Python(八)-----内置高阶函数用法总结

    函数是Python的核心内容之一,能够提高代码的重复利用率.为了更好的使用函数,有必要了解函数的一些高级用法. Python内置了三个高阶函数:所谓高阶函数就是以函数作为参数,或者返回一个函数的函数, ...

  4. Python函数式编程简介(一)高阶函数

    本文概括介绍Python函数式编程的一些概念及用法,详细请参考: https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df ...

  5. python 惰性序列_菜鸟学飞自学Python(五)高阶函数

    (仅个人学习摘抄) 函数式编程 函数式编程就是一种抽象程度很高的编程范式,特点是允许把函数本身作为参数传入到另一个函数,还允许返回一个函数. 高阶函数 高阶函数--Higher-order funct ...

  6. python编程入门电子书-Python编程基础 PDF 原书高质量版

    给大家带来的一篇关于Python入门相关的电子书资源,介绍了关于Python编程基础.Python编程教程方面的内容,本书是由人民邮电出版社出版,格式为PDF,资源大小6 MB,张健 张良均编写,目前 ...

  7. Python学习笔记__4.1章 高阶函数

    # 这是学习廖雪峰老师python教程的学习笔记 1.概览 我们知道Python内置的求绝对值的函数是abs() # 调用abs()函数可以获得一个值 >>> abs(-10) 10 ...

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

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

  9. Python编程基础:第二十二节 关键字参数Keyword Argument

    第二十二节 关键字参数Keyword Argument 前言 实践 前言 我们在调用函数的时候需要根据参数的顺序指定每一个参数的取值,如果我们函数中参数非常多,此时按照顺序指定每一个参数的赋值方式将导 ...

最新文章

  1. php 5.2 模块路径,5.2 模块和操作
  2. 二维已经 OUT 了?3DPose 实现三维人体姿态识别真香 | 代码干货
  3. Winmail邮件服务器
  4. 我在全球最大的同性社交平台那点事
  5. MIT新研究:算法比硬件更有用
  6. ocp认证考试指南第一章
  7. 多层交换综合实验(二)
  8. Busybox中httpd、ftpd、telnetd、tftpd、ntpd的用法
  9. 部署https后访问提存在安全隐患NET::ERR_SSL_OBSOLETE_VERSION
  10. 「docker实战篇」python的docker爬虫技术-安卓模拟器(二)
  11. iconfont多色图标的使用方法
  12. Java中的Hash Code到底是什么?
  13. Spring+SpringMVC+Mybatis分布式敏捷开发系统架构(附源码)
  14. Time-wait状态(2MSL)一些理解
  15. java实现音乐播放功能
  16. CGLIB对类做动态代理时,无法拦截static修饰的方法和final修饰的方法
  17. 【论文笔记 · RL】Learning Phase Competition for Traffic Signal Control
  18. 单丝不成线,独木不成林
  19. 多用户服务器程序设计(详解)
  20. std::complex类conj

热门文章

  1. jupyter notebook报错:ImportError: cannot import name ‘Imputer‘ from ‘sklearn.preprocessing‘解决方法
  2. html页面如何循环遍历,遍历foreach循环中的HTML DOM元素
  3. C++中的Lambda表达式详解
  4. linux下源码安装vim,ubuntu 源码编译安装最新的vim 8.0
  5. 易语言开发c s,Grid++Report报表工具C/S实战项目演练
  6. java 对象初始化属性,JAVA中类属性的初始化
  7. Android中的基础控件CheckBox、RadioButton、ToggleButton、SeekBar
  8. 51单片机的中断系统
  9. ios android 内存不足,怎样解决手机内存不足?iOS系统可以试试这些方法
  10. python construct 字符串_通过字符串变量在Python中设置和获取@property方法