文档章节

零基础学python-18.4 函数对象:间接调用函数

raylee2015
 raylee2015
发布于 2015/10/21 08:10
字数 550
阅读 7
收藏 0

钉钉、微博极速扩容黑科技,点击观看阿里云弹性计算年度发布会!>>>

这一章节我们来讨论一下函数对象的其中一个方面:间接调用函数

在讨论之前,我们先来说一下函数为什么是对象?因为在python的定义里面,他所有都是对象,所以函数也是对象,在执行的时候已经存在内存空间里面的

>>> def test(a):
	print(a)

	
>>> id(test)
31897400
>>>

 

>>> def test(a):
	print(a)
>>> type(test)
<class 'function'>
>>>



从代码可以看见,函数在python也是对象,他是存储在内存控件里面,因此用内建函数id()可以得到想要的id号

 

我们下面将举出三种间接调用函数的例子。

1.通过变量名赋值调用

>>> def test(a):
	print(a)

	
>>> x=test
>>> x(1)
1
>>> def test(a,b):
	print(a,b)

	
>>> x=test
>>> x(1,2)
1 2
>>>


从上面的代码可以看出,test是函数def的变量名称,他可以通过=号赋值给x,然后x就可以引用函数def的内存地址,然后参数按照原来的方法一样

 

2.通过参数传递函数

>>> def test2(func,args):
	func(args)
>>> test2(x,3)
3
>>> def test(a):
	print(a)

	
>>> x=test
>>> aList=[(x,'a'),(x,'abc')]
>>> for (func,args) in aList:
	func(args)

	
a
abc
>>>


从上面两个例子我们可以看见,函数可以通过参数的形式传递给其他函数,然后函数也可以作为列表的对象传递等等

3.函数返回函数

>>> def test(a):
	def test2(a):
		print(a)
	return test2
>>> x=test(1)
>>> x(1)
1
>>>

上面的简单例子可以说明函数可以当作对象返回

>>> def test(x):
	def test2(a):
		print(a*x)
	return test2

>>> x=test(2)
>>> x(2)
4
>>> x(3)
6
>>> x(4)
8
>>> x=test(3)
>>> x(2)
6
>>> x(3)
9
>>> x(4)
12
>>>


上面的例子是之前嵌套作用域已经提到的闭包函数,不明白的可以去看一下嵌套作用域

 

总结:这一章节介绍了函数对象的间接调用的三种方法

 

这一章节就说到这里,谢谢大家

------------------------------------------------------------------

点击跳转零基础学python-目录


 

 

版权声明:本文为博主原创文章,未经博主允许不得转载。

raylee2015
粉丝 6
博文 265
码字总数 44224
作品 0
江门
私信 提问
加载中
请先登录后再评论。
《零基础轻松学Python》文末赠两本~

Python 编程语言是容易学习且功能强大的语言,只要会用微信聊天、懂一点英文单词即可学会。另外,面对同样一个功能,其他编程语言的代码行数可能是几十行,甚至几百行,而Python 语言只要几行...

早起Python
05/13
0
0
零基础学python-2.24 一些常用函数

今天我举一些常用的函数,让大家了解一下: 函数 作用 dir([obj]) 浏览对象的属性 help([obj]) 显示对象的文档字符串 ini([obj]) 将对象转为整形 len([obj]) 返回对象长度 open([obj]) 打开文...

raylee2015
2015/08/24
0
0
零基础Python教程039期 重修列表基本操作

知识回顾: 1、掌握星号菱形的写法,实则掌握简单的循环运用 2、掌握*运用于字符串的运算 本节知识视频教程 以下开始文字讲解: 上一节中,我们对python的循环控制语句做了基本的练习,也掌握...

刘金玉编程
2019/11/17
0
0
Python基础总结成千行代码,让Python入门更简单!

只要学会这千行代码,不管你是零基础还是弱基础或是没有接触过编程,都可以快速入门Python!当时我就不信邪啊,等我看完之后,即使作为一个Python老鸟了,还是领会到了很多教授他的独特见解!...

糖宝lsh
2018/09/10
260
0
零基础Python教程035期 exec和eval字符串转python执行妙用

知识要点: 1、掌握随机数猜数字小游戏 2、掌握类random使用 3、掌握多条件判断,利用关键词and 与 or 本节知识视频教程 以下开始文字讲解: 一、exec函数试用 exec执行的格式: exec(字符串...

刘金玉编程
2019/11/06
0
0

没有更多内容

加载失败,请刷新页面

加载更多

真的,不要迷信数据分析。

点击上方“咸鱼学Python”,选择“加为星标” 第一时间关注Python技术干货! 来源:知乎 作者:Allen Sun 最近有同学问了我一个很致命的问题:数据分析真的有必要做吗?为什么感觉都是伪需求...

咸鱼学Python
05/07
9
0
StartIsback设置备份工具 1.0

点击箭头处 “蓝色字” ,关注我们哦!! 软件介绍 现在很多人都用StartIsBack(开始菜单)来替代Windows默认开始菜单(主要还是因为新硬件没法装win7)。但重做系统后,反复设置很麻烦,于是...

萌海无涯
2019/12/24
0
0
C# SqlSugar框架的学习使用(四)-- 插入数据的详细用法

前言 上一篇《C# SqlSugar框架的学习使用(三)-- 查询的多种用法》我们已经把SqlSugar的查询多种用法实现了,这篇我们就来说说插入数据的多种用法。 数据源 数据表 POSTemp 我们还是用前面介...

Vaccae
2019/08/15
16
0
Qt自定义Widget之仪表盘

点击上方蓝字可直接关注!方便下次阅读。如果对你有帮助,麻烦点个在看或点个赞,感谢~ 上次和大家分享了使用Qml制作的仪表盘的过程,这次和大家分享下Qt的自定义控件过程。 效果图如上,有图...

SparkFire
03/28
6
0
使用 Linux 实用程序 gPhoto2 备份手机存储

尽情地拍照吧,gphoto2 能够方便、快速地将照片从你的设备传输到 Linux 计算机上。 移动设备的最大缺点之一就是其将数据从设备传输到计算机很困难。移动设备在这一缺点上有着悠久的历史。早期...

osc_252iaxru
24分钟前
20
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部