python装饰器之数据验证
作者:YXN-python 阅读量:82 发布日期:2023-02-28
代码1:检查参数是否为数字
import numbers
def check_if_number(func):
def wrapper(*args, **kwargs):
# 此处书写验证逻辑 start
for arg in args:
if not isinstance(arg, numbers.Number):
raise TypeError(f"参数必须是数字,但接收到的是 {type(arg).__name__}")
# 此处书写验证逻辑 end
return func(*args, **kwargs)
return wrapper
@check_if_number
def add(a, b):
return a + b
代码2:检查是否为管理员
def admin_required(func):
def wrapper(*args, **kwargs):
if not user_is_admin():
raise Exception("用户不是管理员,无法执行操作。")
return func(*args, **kwargs)
return wrapper
@admin_required
def sensitive_function():
print("执行敏感操作。")
def user_is_admin():
# 这里应该是检查用户是否为管理员的逻辑
return True
sensitive_function()
YXN-python
2023-02-28