python 装饰器 (我的随笔)

装饰器的基本实现:函数

def kuozhan(func):ui

  def newruixin():扩展

    #扩展功能:
    print('若是我说若是‘)装饰器

    #调用基本函数new

    funcreturn

    print('没有若是‘)参数

  #增长返回值

  return newruixin

 

#基本函数

@kuozhan   #ruixin = kuozhan(ruixin)  扩展以后的函数要从新赋值给基本函数,

def ruixin():
  print('很难实现‘)

 

#调用基本函数

ruixin()

 

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

 

# 和带有返回值的装饰器

def kuozhann(func):

  def newruixin():
    print('若是没有若是')

    result=func()

    print('哈哈哈哈哈‘)

    return result

  return newruixin

@kuozhan

def ruixin():

  print('必定没有若是‘)

  return '嘿嘿嘿嘿‘

ruixin()

 

---------------------------------------------------------------------------------------------------------------------------------------------

 

#带有参数的装饰器

def  outer(arg):

  def kuozhan(func):

    def newruixin():

      print('111111111')

      func()

      print('22222222')

 

    def newfanbo():

      print('aaaaaaaaaaa')

      func()

      print('bbbbbbbb')

    if arg =='ruixin':

      return newruixin

    elif arg =='fanbo'

      return newfanbo

  return kuozhan

 

@outer('ruixin')

def ruixin():

  print('111222')

@outer('fanbo')

  print('asasasa')

 

fanbo()

ruixin()

相关文章
相关标签/搜索