使用场景
在开发中,某些方法的访问需要判断用户是否登录,或是检验其是否有权限访问。这里通常使用装饰器实现。
下面通过一个demo
例子来演示如何进行权限验证。
代码
# -*- coding: utf-8 -*-
# @File : 01-装饰器.py
from functools import wraps
def login_require(func):
@wraps(func)
def inner(*args, **kwargs):
name = kwargs.get('name')
if name:
print('已登录')
return func(*args, **kwargs)
else:
print('未登录')
return inner
@login_require
def my_page(name=None):
print('name:{}'.format(name))
print('这是一个测试页面')
my_page(name='小明')
- 构建一个装饰器
login_require
,通过检测其传入的参数中是否有携带有权限参数,在这里判断如果能取到name
那么就认为是已登录状态,否则未登录 - 如果装饰器校验通过后,那么就会执行
my_page
中的方法
结果分析
- 通过判断
name
中是否有值判断是否登录
- 通过
kwargs
关键字参数取到值进行判断
- 通过
args
位置参数判断