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]
网友评论