


下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第call在Python中改进数列的实例讲解我们都有过函数调用的经历,那么call调用类实例的过程就跟函数很相似。类的用法很多人都知道了,类实例又是什么呢?可以把类看成一个设计图,类实例就是设计出的成品。现在我们弄清楚了call调用对象的概念,就可以进一步用来在python中改进数组,想学的小伙伴一起往下看吧。
__call__()
Python里,函数式first-class对象,这表示,函数可以被传递给另外的函数或者方法,可以从子程序里返回,可以赋给变量。
类的实例也可以像函数一样被对待,比如将他们传递给其他的函数或者方法,并且被调用。想要达到这个目的,就要在类里专门定义__call__()方法。
def__call__(self,[args...])它接受一系列参数。假设x是类X的一个实例,x.__call__(1,2)就等价于调用x(1,2),而实例x仿佛就是一个函数。
改进一下斐波那契数列:
classFib(object):
请加一个__call__方法,让调用更简单:
f=Fib()
print(f(10))
[0,1,1,2,3,5,8,13,21,34]
可以把实例对象用类似函数的形式表示,进一步模糊了函数和对象之间的概念。
classFib(object):
def__init__(self):
pass
def__call__(self,num):
a,b=0,1;
self.l=[]
foriinrange(num):
self.l.append(a)
a,b=b,a+b
returnself.l
def__str__(self):
returnstr(self.l)
__rept__=__str__
f=Fib()
print(f(10))
__call__()知识点扩展
在Python中,函数其实是一个对象:
f=abs
f.__name__
abs
f(-123)
由于f可以被调用,所以,f被称为可调用对象。
所有的函数都是可调用对象。
一个类实例也可以变成一个可调用对象,只需要实现一个特殊方法__call__()。
我们把Person类变成一个可调用对象:
classPerson(object):
def__init__(self,name,gender):
=name
self.gender=gender
def__call__(self,friend):
printMynameis%s...%
printMyfriendis%s...%friend
现在可以对Person实例直接调用:
p=Person(Bob,male)
p(Tim)
MynameisBob...
MyfriendisTim...
单看p(Tim)你无法确定p是一个函数还是一个类
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 法学概论教师角色与学生互动试题及答案
- 美国和中国经济模式的差异试题及答案
- 2025年VB考试知识地图试题及答案
- 法学研究中的方法论与试题及答案
- 经济复苏中的政策应对试题及答案
- 班级科学知识普及活动计划
- 建立项目管理的标准流程计划
- 数据驱动决策的实施步骤计划
- 2025关于项目管理咨询服务委托合同示例
- 2025年公司竞争策略与风险控制实务试题及答案
- 【合同范文】传媒公司合作合同6篇
- 乳腺癌防治知识手册运动与健康生活方式建议
- 2024年上海第二工业大学单招职业技能测试题库附答案
- 《融资融券对企业创新的影响实证研究》11000字【论文】
- 预防肺癌健康教育
- 工业蒸汽生产安全操作规范
- 儿童发展问题的咨询与辅导-案例1-5-国开-参考资料
- 广东省华附、省实、广雅、深中2025届高三四校联考语文试题与答案
- 皮下气肿治疗
- DBJT45-007-2012 广西壮族自治区先张法预应力混凝土管桩基础技术规程
- 2025年河北省职业院校技能大赛工业互联网集成应用参考试题库(含答案)
评论
0/150
提交评论