flage=0
def wapper(fun):
def inner(*args,**kwargs):
global flage
'''登录程序'''
if flage==1:
ret = fun(*args, **kwargs)
return ret
else:
username=input('请输入用户名')
password=input('请输入密码')
if username=='刘德华' and password=='123456':
flage=1
ret=fun(*args,**kwargs)
return ret
else:
print('登录失败')
return inner
@wapper
def shopp_add():
print('增加一个物品')
@wapper
def shopp_del():
print('删除一个物品')
shopp_add()
shopp_del()
def log(fun):
def inner(*args,**kwargs):
res=fun(*args,**kwargs)
with open('log.txt','a') as f:
f.write(fun.__name__+'\n')
return res
return inner
@log
def shoplist_add():
print('增加一个物品')
@log
def shoplist_del():
print('删除一个物品')
shoplist_add()
shoplist_del()
shoplist_add()
shoplist_del()
shoplist_add()
shoplist_del()
shoplist_add()
shoplist_del()
import os
from urllib.request import urlopen
def chae(fun):
def inner(*args,**kwars):
if os.path.getsize('chace'):
with open('chace','rb') as f:
return f.read()
ret=fun(*args,**kwars)
with open('chace','wb') as f:
f.write(b'******'+ret)
return ret
return inner
@chae
def get(url):
ret=urlopen(url).read()
return ret
s=get('http://www.baidu.com')
print(s)
s=get('http://www.baidu.com')
print(s)
s=get('http://www.baidu.com')
print(s)
import functools
def ss(text='call'):
def test(f):
@functools.wraps(f)
def testF(*args,**kwargs):
if text=='call':
print('begin %s %s %s'%(text,fun1.__name__,'使用默认的的text'))
f(*args,**kwargs)
print('end call')
else:
print('begin %s %s' % (text, fun1.__name__))
f(*args,**kwargs)
print('end call')
return testF
return test
@ss('excute')
def fun(x,y):
print('这是一个被装饰的函数')
return x,y
@ss()
def fun1(x):
print('这是一个被装饰的函数')
return x
fun(1,2)
print('-------------------------')
fun1(4)