能不能通俗地解释一下这节课学了个啥?
课中一直在说@用法,但是我一直没参透出@的作用和用法,大佬们讲讲这个@一般什么时候用,用在哪?
课中一直在说@用法,但是我一直没参透出@的作用和用法,大佬们讲讲这个@一般什么时候用,用在哪?
2021-04-22
#定义装饰器函数log
def log(f): #f指代你要装饰的函数,如下文的factorial
def fn(x):#这里就开始装饰了
print('call ' + f.__name__ + '()...') #装饰器装饰的东西
return f(x) #执行被装饰的函数(要装饰了才知道对应哪个函数)
return fn #装饰完毕
#定义好了装饰器内容后,用@+装饰器名称就可以调用装饰器了
@log
def factorial(n):
return reduce(lambda x,y: x*y, range(1, n+1))
print(factorial(10))
#执行顺序为,先执行装饰器,后执行被装饰的函数,也就是print('call ' + f.__name__ + '()...') 后reduce(lambda x,y: x*y, range(1, n+1))
举报