python--functools的使用

幾個常用的函數:

partial:重新綁定函數的可選參數,可選參數必須寫出參數名,如int2 = partial(int, base=2);

update_wrapper:把被封裝函數的__name__、__module__、__doc__和 __dict__都複製到封裝函數去,例子:

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__
輸出:
對啊,怎樣纔算活着呢?活着就是吃嘛。
什麼是活着

wraps:將update_wrapper也封裝了進來,例子:

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_


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章