python 的funtools模块

functools.partial

from operator import add
import functools
print add(1,2) #3
add1 = functools.partial(add,1)
print add1(10) #11

functools.update_wrapper

#-*- coding: gbk -*-

def thisIsliving(fun):
  def living(*args, **kw):
    return fun(*args, **kw) + '活着就是吃嘛。'
  return living

@thisIsliving
def whatIsLiving():
  "什么是活着"
  return '对啊,怎样才算活着呢?'

print whatIsLiving()
print whatIsLiving.__doc__

print

from functools import update_wrapper
def thisIsliving(fun):
  def living(*args, **kw):
    return fun(*args, **kw) + '活着就是吃嘛。'
  return update_wrapper(living, fun)

@thisIsliving
def whatIsLiving():
  "什么是活着"
  return '对啊,怎样才算活着呢?'

print whatIsLiving()
print whatIsLiving.__doc__

#output
对啊,怎样才算活着呢?活着就是吃嘛。
None

对啊,怎样才算活着呢?活着就是吃嘛。
什么是活着

functools.wraps

#-*- coding: gbk -*-

from functools import wraps

def thisIsliving(fun):
  @wraps(fun)
  def living(*args, **kw):
    return fun(*args, **kw) + '活着就是吃嘛。'
  return living

@thisIsliving
def whatIsLiving():
  "什么是活着"
  return '对啊,怎样才算活着呢?'

print whatIsLiving()
print whatIsLiving.__doc__
#output
对啊,怎样才算活着呢?活着就是吃嘛。什么是活着

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1 functools函数 functools模块用于高阶函数:作用与或者返回其它函数的函数。一般来说,对于该模块...
    lakerszhy阅读 10,025评论 0 7
  • functools模块用于高级函数:作用于或返回其他函数的函数,一般来说,任何可调用对象都可以作为这个模块的用途来...
    第八共同体阅读 3,072评论 0 2
  • functools.partial functools.partial 通过包装手法,允许我们 "重新定义" 函数...
    笨手笨脚越阅读 2,152评论 1 2
  • 在与大姨妈交手N+次后我依旧失败了,而且一直是完败,被“打”得毫无还手之力。 记得从来大姨妈开始就伴随着各种的症状...
    Myunt丶阅读 520评论 2 2
  • 最近的一个ios项目中需要把服务端的html代码进行解析,获取其中的排版以及文本的样式(字体颜色,大小,加粗,居中...
    WTMY阅读 290评论 0 1