f(-123)
由于 f 可以被调用,所以,f 被称为可调用对象 。
所有的函数都是可调用对象 。
一个类实例也可以变成一个可调用对象,只需要实现一个特殊方法__call__() 。
我们把 Person 类变成一个可调用对象:
class Person(object):
def __init__(self, name, gender):
self.name = name
self.gender = gender
def __call__(self, friend):
print 'My name is %s...' % self.name
print 'My friend is %s...' % friend
现在可以对 Person 实例直接调用:
p = Person('Bob', 'male')
p('Tim')
My name is Bob...
My friend is Tim...
单看 p('Tim') 你无法确定 p 是一个函数还是一个类实例,所以,在Python中,函数也是对象,对象和函数的区别并不显著 。
任务
改进一下前面定义的斐波那契数列:
class Fib(object):
???
请加一个__call__方法,让调用更简单:
f = Fib()
print f(10)
[0, 1, 1, 2, 3, 5, 8, 13, 21, 34]
python中__call__方法解析__call__ 方法是python的魔术方法python可调对象函数,就是增加一些特殊功能python可调对象函数,我们来看看 __call__ 代表python可调对象函数了什么意思?
python中所有的东西都被称为对象python可调对象函数,对象分为可以被调用和不可以被调用
可调用对象:许多Python对象都是我们所说的可调用的,即是任何通过函数操作符 () 来调用的对象
1.例如函数
函数是对象,可以被调用
2.但是如果是类的话会发生什么情况呢?
Python给类提供了名为 __call__ 的特别方法 , 该方法允许程序员创建可调用的对象(实例) 。默认情况下 , __call__ 方法是没有实现的,这意味着大多数情况下实例是不可调用的 。
如何解决这一个问题?这里就用到 __call__ 函数
以上说明 __call__
python可调对象函数的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于python中可调用对象、python可调对象函数的信息别忘了在本站进行查找喔 。
推荐阅读
- HTML5网页钢琴代码,钢琴谱网页
- c.net程序设计程序题的简单介绍
- u盘怎么插进海信电视里,u盘在海信电视机上的使用方法
- 快手直播手游怎么直播,手游在快手怎么直播
- linux用命令打开网址 linux命令浏览网页
- 新电脑硬盘怎么分区系统,新电脑硬盘分区教程
- mongodb字段加索引注解,mongodb创建索引太慢了怎么办
- gis什么时候需要矢量化,gis常用的矢量数据有哪些
- java基础程序代码编写 java编程代码实例