装饰器的相关练习

管理员添加用户信息系统

源代码
import functools
import inspect
def is_admin(fun):
@functools.wraps(fun)
def wrapper(*args,**kwargs):
inspect_res = inspect.getcallargs(fun,*args,*kwargs)
print(‘inspect的返回值: %s’ %inspect_res)
if inspect_res.get(‘name’) == ‘root’:
res = fun(*args,**kwargs)
return res
else:
print(‘not root user!’)
return wrapper
login_session = [‘root’, ‘redhat’, ‘python’]
def is_login(fun):
@functools.wraps(fun)
def wrapper(*args,**kwargs):
if args[0] in login_session:
res = fun(*args,**kwargs)
return res
else:
print(‘Error:%s未登录’ %args[0])
return wrapper
@is_login
@is_admin
def add_student(name):
print(‘添加学生信息…’)
add_student(‘root’)

装饰器的相关练习
装饰器的相关练习