python函数实例解析_python支持返回函数的实例解析
这篇文章主要介绍了python支持返回函数的实例解析,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
最近接触python,看到了python中返回函数的概念,以前只接触过函数返回值,比如python就可以返回int,str,list,dict等等类型数据,这里要说的是python还支持返回函数。
首先看看python支持返回函数的基本语法def f():
print 'call f()...'
# 定义函数g:
def g():
print 'call g()...'
# 返回函数g:
return g
这里,最外层的函数f会返回一个函数g,也就是函数g本身;
下面看看函数调用的过程;(接上面)>>> x = f() # 调用f()call f()...>>> x # 变量x就是上面一个最外层函数返回的函数(不是函数值)
>>> x() # x指向函数,因此可以调用,这里就是调用内层函数x()的过程call g()... # 调用x()就是执行g()函数定义的代码只返回函数的作用:
返回函数可以把一些计算延迟执行。例如,如果定义一个普通的求和函数:def calc_sum(lst):
return sum(lst)
>>>calc_sum([1,2,3,4])
结果直接是:10
但是,可以通过返回函数思想写代码,就可以“延时计算”def calc_sum(lst):
def lazy_sum():
return sum(lst) return lazy_sum
下面是调用:
注意,下面代码并没有对函数进行执行计算出结果,而是返回函数。>>> f = calc_sum([1, 2, 3, 4])
>>> f
对返回的函数进行调用时,才计算出结果>>>f()10
下面是一个例子:
请编写一个函数calc_prod(lst),它接收一个list,返回一个函数,返回函数可以计算参数的乘积。
思想:先定义能计算乘积的函数,再将此函数返回。def calc_prod(lst):
def lazy_prod():
def f(x,y):
return x*y
return reduce(f,lst,1)
return lazy_prod
f = calc_prod([1, 2, 3, 4])
print f()
相关推荐:
python函数实例解析_python支持返回函数的实例解析相关推荐
- python在匿名函数作和_python内置函数和匿名函数
楔子 在讲新知识之前,我们先来复习复习函数的基础知识. 问:函数怎么调用? 函数名() 如果你们这么说...那你们就对了!好了记住这个事儿别给忘记了,咱们继续谈下一话题... 来你们在自己的环境里打印 ...
- python读取数据的函数详解_python如何从文件读取数据及解析
python如何从文件读取数据及解析 读取整个文件: 首先创建一个文件,例如我创建了一个t x t文件了. 然后我想读取这个文件了,我首先将上面的这个文件保存在我即将要创建的Python的文件目录下, ...
- python时间函数带时区_Python pytz时区函数返回的时区为9分钟 - python
由于某些原因,我无法从以下代码中找出原因: >>> from pytz import timezone >>> timezone('America/Chicago' ...
- python中使用函数的优点_Python基础之函数基本用法与进阶详解
本文实例讲述了Python基础之函数基本用法与进阶.分享给大家供大家参考,具体如下: 目标 函数参数和返回值的作用 函数的返回值 进阶 函数的参数 进阶 递归函数 01. 函数参数和返回值的作用 函数 ...
- python内置函数下划线_python(内置函数)
检测本文件中对象是否存在 # -*- coding: utf-8 -*- import sys x=10 obj1=sys.modules[__name__] print(hasattr(obj1,& ...
- python查看方法作用_python中有帮助函数吗
python中的dir()函数是一个非常重要的函数,它可以帮助我们查看函数的功能和特性. 中文说明:不带参数时,返回当前范围内的变量.方法和定义的类型列表:带参数时,返回参数的属性.方法列表.如果参数 ...
- python内置函数绝对值图像_Python内置函数
内置函数清单 1.abs() 求数字的绝对值 2.all() 判断集合元素是否都为True,都为True时返回True,否则返回False. 3.any() 判断集合元素是否都为F ...
- python power函数_python中pow函数的用法_python中pow函数用法及功能说明
幂运算是高更数学的应用学科,是一种关于幂的数学运算.同底数幂相乘,底数不变,指数相加.同底数幂相除,底数不变,指数相减.幂的乘方,底数不变,指数相乘.适用于精确计算领域. 计算机作为精确计算的一种方式 ...
- python中pow函数的用法_python中pow函数用法及功能说明
幂运算是高更数学的应用学科,是一种关于幂的数学运算.同底数幂相乘,底数不变,指数相加.同底数幂相除,底数不变,指数相减.幂的乘方,底数不变,指数相乘.适用于精确计算领域. 计算机作为精确计算的一种方式 ...
最新文章
- 设计模式--简单工厂(Factory)模式
- public virtual T GetT(string key, T defaultValue)
- Windows消息机制学习笔记(三)—— 消息的接收与分发
- 一款jquery实现的整屏切换特效
- VSCode自定义代码片段10—— 数组的响应式方法
- Python计算前n个自然数的阶乘和
- android listview 只加载显示的图片大小,Android ListView只加载当前屏幕内的图片(解决list滑动时加载卡顿)...
- C语言和C++中如何编写交换两个整形变量值的函数
- 计算机科学导论第四版ppt,计算机科学导论课件.ppt
- 48页小米用户画像实战PPT
- matpower学习笔记
- 解决XeLaTex编译后中文出现乱码的问题
- matlab 切点投资组合 程序,基于MATLAB的证券投资组合分析
- StringBuilder和StringBuffer的效率比较
- Qt 官方例子 Callout Example
- Tiny Heroes:道高一尺,魔高一丈
- Window通过cmd命令测试服务器带宽性能的方法(IP测试)
- python怎么编程乘法口诀表_少儿编程|python|制作九九乘法口诀表
- 【猛料】腾讯前总监受贿侵占数百万获刑9年
- python 02 --python从安装到学习精品网站(廖雪峰官方网站)
热门文章
- java的jsp要下载吗_jsp、java下载附件
- mysql中间件面试题_面试题集锦-中间件 - 春哥大魔王的博客的个人空间 - OSCHINA - 中文开源技术交流社区...
- git ssh配置文件 服务器_git登录ssh服务器
- CMake 手册详解(二十二)
- AM335X 分配大于4M的framebuffer
- Session、Dialog和Transaction的区别
- 华为笔记本软件商店_华为应用市场电脑版
- 动态分区分配的“首次适应算法_动态图划分复制算法:Leopard
- jwt获取token_JWT实现token认证
- python代码太长_Python 太糟糕了?开发者总结了 8 大原因