0001 functools

来源:互联网 发布:scopus数据库简介 编辑:程序博客网 时间:2024/05/22 13:28

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    @property    def alive(self):        return self._alive    def 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 _@w1def 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



0 0
原创粉丝点击