python参数检验代码
时间: 2023-11-08 15:59:12 浏览: 26
要编写Python参数检验代码,可以使用函数注解和条件语句来实现。下面是一个示例代码,用于检查一个函数的参数是否为整数:
```python
def check_integer(func):
def wrapper(*args, **kwargs):
annotations = func.__annotations__
for param, value in annotations.items():
if param not in kwargs:
# 如果参数没有传递,则跳过检验
continue
if not isinstance(kwargs[param], int):
raise TypeError(f"Parameter '{param}' must be an integer.")
return func(*args, **kwargs)
return wrapper
@check_integer
def add_numbers(a: int, b: int) -> int:
return a + b
result = add_numbers(3, 4)
print(result) # 输出:7
result = add_numbers(3, "4") # 参数类型不符合要求,抛出异常
```
在上面的代码中,`check_integer` 是一个装饰器函数,它接受一个函数作为参数,并返回一个新的函数 `wrapper`。`wrapper` 函数首先获取被装饰函数 `func` 的参数注解,然后遍历注解中的参数和对应的值。如果参数在传入的关键字参数中存在,并且对应的值不是整数类型,就会抛出一个 `TypeError` 异常。否则,将调用原始的函数 `func` 并返回其结果。