import functools
login_users = ['admin', 'root']
defis_login(fun):# fun: writeBlog@functools.wraps(fun)defwrapper(*args, **kwargs):# name="admin" # kwargs={"name":"admin"}# 判断写博客的这个用户是否登陆成功;if kwargs.get("name") in login_users:
res = fun(*args, **kwargs)
return res
else: #如果没有登陆成功,就跳转到登陆界面
res=login()
return res
return wrapper
# 必须登陆成功@is_login # writeBlog = is_login(writeBlog)defwriteBlog(name):return"编写博客"deflogin():return"登陆。。。。"# 是否登陆成功都可以执行代码defnews():
print("新闻......")
print(writeBlog(name="admin1"))
函数参数验证
import functools
defrequired_ints(fun):@functools.wraps(fun)defwrapper(*args, **kwargs):# args=(1,2)for i in args:
ifnot isinstance(i , int):
print("函数所有参数并非为整形")
breakelse:
res = fun(*args, **kwargs)
return res
return wrapper
@required_intsdefadd(a, b):return a + b
print(add(1,2))