您的位置:首页 > 编程语言 > Python开发

python 函数是可调用对象和特殊方法__call__

2017-03-11 13:45 435 查看



在Python中,函数其实是一个对象:

由于函数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中,函数也是对象,对象和函数的区别并不显著
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: