闭包函数和装饰器
使用闭包函数写一个装饰器,要求:使用该装饰器的方法会循环执行5次,并且打印出循环次数 本帖最后由 jackz007 于 2022-11-18 17:45 编辑def wrapper(func):
c = 0
def inner(* args):
nonlocal c
r = func(* args)
c += 1
print('count = %d' % c)
return inner
@wrapper
def foo() : print('hello, FishC!')
if __name__ == '__main__':
for _ in range(5) : foo() >>> def outer(func):
def inner():
nonlocal func
func(); func(); func(); func(); func();
print(f'{func.__name__} 函数被调用了 5 次!')
return inner
>>> @outer
def temp():
print('temp 函数被调用了')
>>> temp()
temp 函数被调用了
temp 函数被调用了
temp 函数被调用了
temp 函数被调用了
temp 函数被调用了
temp 函数被调用了 5 次!
>>> 本帖最后由 Mefine 于 2022-11-22 10:19 编辑
jackz007 发表于 2022-11-18 17:34
感谢感谢~
def wrapper(func):
c = 0
def inner(* args):
nonlocal c
r = func(* args)
c += 1
print('当前第%d次执行foo函数' % c)
return inner
@wrapper
def foo():
pass
if __name__ == '__main__':
for _ in range(5) : foo() {:5_91:}
页:
[1]