Python, 函数本身也是一个对象函数既可以赋值,也可以用作其他函数的参数,还可作为其他函数的返回值。

使用函数变量

Python的函数也是一种值:所有函数都是function对象,这意味着可以把函数本身赋值给变量,就像把整数、浮点数、列表、元组赋值给变量一样。

当把函数赋值给变量之后,接下来程序也可通过该变量来调用函数。例如如下代码:

# 定义一个乘方的函数def pow(base, exponent): result = 1 for i in range(1, exponent + 1): result *= base return result# 将pow函数复制给my_fun,则my_fun可被当成pow使用my_fun = powprint(my_fun(3, 4)) # 输出81# 定义一个计算面积的函数def area(width, height): return width * height# 将area函数赋值给my_fun,则my_fun可被当成area使用my_fun = areaprint(my_fun(3, 4)) # 输出12

使用函数作为函数形参

有时候需要定义一个函数,该函数大部分计算逻辑都能确定,但某些处理逻辑暂时无法确定——这意味着某些程序代码需要动态改变,如果希望调用函数时,能动态传入这些代码,那么就需要在函数中定义函数形参,这样即可在调用该函数时传入不同的函数作为参数,从而动态改变这段代码。

Python支持像使用其他参数一样使用函数参数,例如如下程序:

# 定义函数类型的形态,其中fn是一个函数def map(data, fn): result = [] # 遍历data列表中的每个元素,并使用fn函数对每个元素进行计算 # 然后将计算结果作为新数组的元素 for e in data: result.append(fn(e)) return result# 定义一个计算平方的函数def square(n): return n * n# 定义一个计算立方的函数def cube(n): return n * n * n# 定义一个计算阶乘的函数def factorial(n): result = 1 for index in range(2m n + 1): result *= index return resultdata = [3, 4, 9, 5, 8]print("原数据:

python pow和**_「Python学习笔记」Python函数高级应用相关推荐

  1. python列表框_「每日一练」Python列表框部件的运用

    原标题:「每日一练」Python列表框部件的运用 用Python就一定要用到界面操作,有一个好的用户界面,才会有好的用户体验,下边就开始创建我们的主窗口,并设置相应的列表框部件吧! 案例 创建主窗口, ...

  2. python docker自动化_「docker实战篇」python的docker爬虫技术-移动自动化控制工具appium工具(17)...

    原创文章,欢迎转载.转载请注明:转载自 IT人故事会,谢谢! 原文链接地址: 「docker实战篇」python的docker爬虫技术-移动自动化控制工具appium工具(17) Appium是一个开 ...

  3. python docker自动化_「docker实战篇」python的docker爬虫技术-移动自动化控制工具安卓ADB的使用(15)...

    原创文章,欢迎转载.转载请注明:转载自 IT人故事会,谢谢! 原文链接地址: 「docker实战篇」python的docker爬虫技术-移动自动化控制工具安卓ADB的使用(15) adb(Androi ...

  4. python docker实战_「docker实战篇」python的docker-docker镜像的创建使用dockerfile(3

    从上篇docker commit学习可以了解到,镜像的定制其实每一层添加的配置和文件,如果把每一层的修改配置,修改文件,都写入脚本,用这个脚本构建定制镜像,无法重复的问题,镜像构建透明性的问题,体积的 ...

  5. python 人像合成_「百度AI API」Python实现人像动漫化

    WechatIMG1.jpeg 想看自己的漫画脸?用不着下快手抖音,这篇文章的目的就是使用Python来实现人像动漫化的效果. 首先,这里是我们使用的人像动漫化API的主页:人像动漫化-百度AI开放平 ...

  6. python编程语言继承_python应用:学习笔记(Python继承)

    学习笔记(Python继承)Python是一种解释型脚本语言,可以应用于以下领域: web 和 Internet开发 科学计算和统计 人工智能 教育 桌面界面开发 后端开发 网络爬虫 有几种叫法(父类 ...

  7. python搞笑语句_云计算开发学习笔记:Python3 import语句

    原标题:云计算开发学习笔记:Python3 import语句 想使用 Python 源文件,只需在另一个源文件里执行 import 语句,语法如下: 当解释器遇到 import 语句,如果模块在当前的 ...

  8. tensorflow gpu利用率低_「动手学习Tensorflow」- Tensorflow综述I

    " 一文概览Tensorflow方方面面." 大家好,我是人工智能工程师Alpha浪. 今天,我们开始「动手学习Tensorflow - Tensorflow 综述」部分. 快速学 ...

  9. dma接收双缓存 stm32_「STM32学习笔记」USART 新特性

    之前的学习笔记"SPI不够用?USART来帮忙"一文中介绍了用如何把USART当做SPI来用的方法.此外,ST的USART还有很多新特性,没准有你不知道的. 在此,我们整理出来以下 ...

  10. 「GIS学习笔记」国土空间规划背景下村庄规划的探索研究

    [GIS学习笔记·实操篇]国土空间规划背景下村庄规划的研究探索 人送外号徐半仙儿,公众号名称:半仙儿说规划 01 前言 水了这么久终于又有大更新啦 [GIS学习笔记·十篇]系列里面的实操篇-国土空间规 ...

最新文章

  1. 巧用Ajax的beforeSend 提高用户体验--防止重复数据
  2. 网站站外优化工作这四项比较“突出”
  3. script的加载方式与执行
  4. .NET Core Community 第二个千星项目诞生:Util
  5. SAP CRM IBASE在ABAP update task中实现update和delete操作
  6. CF 961E Tufurama
  7. 广州科目三路考经历与注意事项分享
  8. 收藏!50个帮你自我提升的网站
  9. python compile函数_python 内置函数 compile()
  10. Nginx正、反向代理以及负载均衡介绍
  11. SQL Server存储过程作业(二)
  12. 区块链 Hyperledger fabric 排序服务Kafka
  13. WES7和WES2009的功能比较
  14. 给IOS初学者及新手的建议
  15. 获取最近一年十二月份的月份
  16. Eclipse中Java项目转化为Java Web项目
  17. 无限极分类之查找家谱树
  18. 探索云原生技术之容器编排引擎-Kubernetes/K8S详解(3)
  19. 香港中文大学推荐的书单~
  20. 人工智能领域数据标注行业的核心需求痛点

热门文章

  1. CDH 5.13.0 集成 Phoenix
  2. 21克:仅需3天,我们就用Quick BI搭建起数据驾驶舱
  3. 基于MaxCompute分布式Python能力的大规模数据科学分析
  4. 收藏!这些IDE使用技巧,你都知道吗
  5. 使用kettle导入数据到ADB for PostgreSQL
  6. Nacos 计划发布v0.2版本,进一步融合Dubbo和SpringCloud生态
  7. 阿里推出会议AI助理“听悟”,面向未来会议
  8. 第三代英特尔至强可扩展处理器,英特尔数据中心的“芯法宝”
  9. 云漫圈 | 什么是微服务?
  10. AI时代的交换机什么样?华为CloudEngine 16800告诉你!