美文网首页
args的正反*操作

args的正反*操作

作者: dittoyy3991 | 来源:发表于2017-07-10 19:29 被阅读15次
def add_1(func):
    '''inside cannot read out func+wrapper+count3namespace'''
    count=0
    def wrapper():
        print '0'*6
        func()
        count_1=1+count
        print count_1
    return wrapper
def add_2(func):
    '''inside cannot read out func+wrapper+count3namespace'''
    count=[0]
    def wrapper():
        print '0'*6
        func()
        count[0]+=1
        print count[0]
    return wrapper
def add_3(func):
    '''inside cannot read out func+wrapper+count3namespace'''
    count=[0]
    def wrapper(*args,**kwargs):
        print '0'*6
        func(*args,**kwargs)
        count[0]+=1
        print count[0]
    return wrapper
@add_3
def show(a,b,c=7):
    print a+b,c

show(1,3,8)
show(2,6,0)

000000
4 8
1
000000
8 0
2


def foo(*args, **kwargs):
    print 'args = ', args
    print 'kwargs = ', kwargs
    print '---------------------------------------'
def fun(a,b,c):
    print 'a=',a
    print 'b=',b
    print 'c=',c

if __name__ == '__main__':
    foo(1,2,3,4)
    foo(a=1,b=2,c=3)
    foo(1,2,3,4, a=1,b=2,c=3)
    foo('a', 1, None, a=1, b='2', c=3)

    print'-----------dddddddddd**kwargsddddddddddd----------------------------'
    k = {'c':3,'b':4}
    fun(1,**k)

    print'-----------ssssssss*argsssssssssssssss----------------------------'
    a = ['c', 'b']
    fun(1,*a)
args =  (1, 2, 3, 4)
kwargs =  {}
---------------------------------------
args =  ()
kwargs =  {'a': 1, 'c': 3, 'b': 2}
---------------------------------------
args =  (1, 2, 3, 4)
kwargs =  {'a': 1, 'c': 3, 'b': 2}
---------------------------------------
args =  ('a', 1, None)
kwargs =  {'a': 1, 'c': 3, 'b': '2'}
---------------------------------------
-----------dddddddddd**kwargsddddddddddd----------------------------
a= 1
b= 4
c= 3
-----------ssssssss*argsssssssssssssss----------------------------
a= 1
b= c
c= b
[Finished in 0.2s]

相关文章

网友评论

      本文标题:args的正反*操作

      本文链接:https://www.haomeiwen.com/subject/gsgucxtx.html