发布时间:2019-09-18 07:21:09编辑:auto阅读(1593)
装饰器前戏
import time
def bar():
time.sleep(3) # 睡3秒
print("in the bar")
def test1(func):
print("in the test1")
return func
bar=test1(bar) # 把bar函数的内存地址传给test1函数(func参数接受bar内存地址),test1函数再returne返回内存地址,再赋值给bar变量
bar()# bar变量(内存地址)加()就成了函数运行
装饰器小高潮
未加装饰器前代码
def test1():
time.sleep(3) #睡3秒
print("in the test1")
def test2():
time.sleep(3)
print("in the test2")
test1()
test2()
加上装饰器后
import time
def timer(func):
def deco():
start_time = time.time() # 获取当前系统时间 (内容开始时间)
func()
stop_time = time.time() # 获取当前系统时间 (内容结束时间)
print("运行时间为:%s"%(stop_time-start_time))
return deco
@timer # @timer = test1=timer(test1)
def test1():
time.sleep(3) #睡3秒
print("in the test1")
@timer
def test2():
time.sleep(3)
print("in the test2")
test1()
test2()
装饰器高潮
user,password = "lt","111"
def login(login_type):
print("login:",login_type)
def user_login(func):
def loging(*ages, **kwargs):
print("*ages, **kwargs:", *ages, **kwargs)
if login_type =="local":
Username = input("用户名:")
Password = input("密码:")
if user == Username and password == Password:
print("登陆成功!")
return func(*ages, **kwargs)
else:
print("登陆失败!")
elif login_type == "ldap":
print("我是ldap")
return loging
return user_login
def index():
print("这里是首页index")
@login(login_type="local")
def home(name):
print("这里是个人页home",name)
return "我是返回的数据"
@login(login_type="ldap")
def bbs():
print("这里是论坛页bbs")
index()
print(home(user))
bbs()
上一篇: python 区分图像大小(A2、A3、
下一篇: Python编程入门到实践 - 笔记(
48720
47757
38528
35726
30167
26902
25929
20774
20537
18932
325°
394°
427°
450°
436°
431°
477°
550°
666°
676°