deep = 0
def print_name(f):
space = '@'
def inner(*args, **kwargs):
global deep
print(deep*space + 'start %s' % f.__name__)
deep += 4
r = f(*args, **kwargs)
deep -= 4
print(deep*space + 'end %s' % f.__name__)
return r
return inner
@print_name
def foo1():
print('foo1')
@print_name
def foo2():
foo1()
print('foo2')
@print_name
def foo3():
foo2()
print('foo3')
start foo2
@@@@start foo1
foo1
@@@@end foo1
foo2
end foo2
------------------------------
start foo3
@@@@start foo2
@@@@@@@@start foo1
foo1
@@@@@@@@end foo1
foo2
@@@@end foo2
foo3
end foo3
版权声明:本文为sky0Lan原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。