第十二天 生成器再进阶

小知识点:

  print(函数名.__name__)就可以打印函数的以字符串的名字的功能。

  print(函数名.__doc__)打印函数文档的功能。

  使用装饰器会改变函数__name__的输入。但是如果想使用原本函数的名字和文档的话,就可以使用以下模块:

from functools import wraps:

def wrapper(func):

  @wraps(func)            #这个功能就可以不改变调用原始函数本身的__name__和__doc的结果!

  def inner (*args,**kwargs):

    print('在被装饰函数之前执行的功能')

    ret = func(*args,**kwargs)

    print('在被装饰函数之后执行的功能')

    return ret

  return inner

@wrapper

def func(...):

  print('函数本身的功能)

ret = func(...)

print(func.__name__)

print(func.__doc__)

 

posted on 2018-12-29 06:46  王汉尧  阅读(88)  评论(0编辑  收藏  举报