1、魔法方法之归结对象的__call__【作用就是能够把实例化对象像函数一样调用dg()】
我要怎么才能够解释清楚__call__的用法
借用之前老师上课的例子吧:最后调用了之后,会有以下步骤:
class Makecake:
def huomian(self):
print('该操作和面')
def fajiao(self):
print('该操作发酵')
def hongkao(self):
print('该操作烘烤')
def monayou(self):
print('该操作抹奶油')
dg = Makecake()
dg.fajiao()
dg.hongkao()
dg.monayou()
dg.huomian()
那么__call__魔法方法的意义在哪里呢?
我们再定义一个打包函数,把所有的东西全部放在一个函数里面
然后把这个函数重新写成__call__就是这个函数的意义所在了。
class Makecake:
def huomian(self):
print('该操作和面')
def fajiao(self):
print('该操作发酵')
def hongkao(self):
print('该操作烘烤')
def monayou(self):
print('该操作抹奶油')
def __call__(self,kouwei):#就是中文的理解,打包一个流程操作,把刚才的所有流程全部打包
self.fajiao()
self.hongkao()
self.monayou()
self.huomian()
print('让我们做一个{}口味的蛋糕吧!'.format(kouwei))
dg = Makecake()
dg('巧克力')