python装饰器(多层)

#coding=utf-8

def level1(action):
  def level2(fun):
    def level3(*args,**kwargs):
      print "begin "+action
      fun(*args,**kwargs)
      print "ending "+action
    return level3
  return level2

@level1("eating")
def test1(act):
  print "I am "+act

test1("running")

运行结果:

begin eating
I am running
ending eating
[Finished in 0.1s]

#coding=utf-8
def level1(fun):
  def level3(*args,**kwargs):
    print "begin level1 "
    fun(*args,**kwargs)
    print "ending level1"
  return level3

def level2(fun):
  def level3(*args,**kwargs):
    print "begin level2"
    fun(*args,**kwargs)
    print "ending level2"
  return level3

@level1
@level2
def test1(act):
  print "I am "+act

test1("running")
运行结果:
begin level1 
begin level2
I am running
ending level2
ending level1
[Finished in 0.1s]

猜你喜欢

转载自blog.csdn.net/jackliu16/article/details/81152501
今日推荐