小白请教装饰器的问题
在小甲鱼的书中装饰器这一节,给出的范例程序是:def log(func):
def wrapper():
print('开始调用eat函数')
func()
print('结束调用eat函数')
return warpper
def eat():
print('开始吃了')
eat = log(eat)
恕小弟愚钝,今天刚刚学习这部分章节,不是很了解。这个eat = log(eat)是个什么意思,我知道log(eat),但是赋给eat是个什么意思?书上最后运行eat()函数,eat()这个不是在调用定义的eat()函数吗?按照定义的不是只打印开始吃了吗为什么还打印了开始调用。。。和结束调用。。。,小弟实在没看懂
万物皆对象,函数也是,可以把函数名当参数传给外部河南省,用于内层调用同时添加功能 eat 函数是 log(eat) 的返回值,所以函数代码左右两端会添加两句代码:print('开始调用 eat 函数') 和 print('结束调用 eat 函数')。 为什么最后要调用eat(),而不是在eat=log(eat)时打印结果
页:
[1]