面向对象-内置特殊方法-调用。
# __call__ :是对象具备像函数一样被调用的能力
class Dog(object):
name = '小狗'
def __call__(self, age):
print('%s被调用了,年龄是%d' % (self.name, age))
d = Dog()
d(111) # 把d对象当做函数来使用
# 与偏函数对比讲解
class Dog(object):
def __init__(self, name):
self.name = name
def __call__(self, color):
print('%s是一直小狗,颜色是%s' % (self.name, color))
d = Dog('Tom') # 创建对象的时候先把初始化参数传入,
d('黑色') # 通过call函数传入另一个参数,实现偏函数效果
d('黄色') # 这里使用对象加上小括号调用的时候会自动调用call方法,__call__和对象之间建立联系的地方