functools"/>
0001 functools
import functools
#partial 用于一此地方限制了参数的个数和类型
def t1(w):print('this is : %s..' %w)p1=functools.partial(t1,'hello world')p1()#partialmethod 类方法的 partial 方案class C1():def __init__(self):self._alive=False@propertydef alive(self):return self._alivedef set_state(self,state):self._alive=bool(state)set_alive=functools.partialmethod(set_state,True)set_dead=functools.partialmethod(set_state,False)c=C1()
print(c.alive)
c.set_alive()
print(c.alive)#updata_wrapper 把 func的 一些属性传到 wapper 函数里 def w1(func):@functools.wraps(func)def _(*args,**kw):print('this is in wapper 1')return func(*args,**kw)return _def w2(func):def _(*args,**kw):print('this is in wapper 2')return func(*args,**kw)return functools.update_wrapper(_,func)def w3(func):def _(*args,**kw):print('this is in wapper 3')return func(*args,**kw)return _@w1
def f1():print('this is in func f1')f1()
print(f1.__name__)
f2=w2(f1)
f2()
print(f2.__name__)f3=w3(f1)
f3()
print(f3.__name__)
结果 :
this is : hello world..
False
True
this is in wapper 1
this is in func f1
f1
this is in wapper 2
this is in wapper 1
this is in func f1
f1
this is in wapper 3
this is in wapper 1
this is in func f1
更多推荐
0001 functools
发布评论