这是一个 Python 装饰器代码,用于检查函数参数的类型是否正确。如果参数类型不匹配,它会返回错误信息。下面我来逐步解释:
代码整体作用:
- 这是一个装饰器工厂,名为
type_check,它接受一个参数
correct_type(期望的参数类型)。
- 它返回一个装饰器,该装饰器会包裹目标函数,并在调用时检查参数类型。
详细解释:
- def type_check(correct_type):
- def outer(func):
- def inner(arg):
- if(type(arg) == correct_type):
- return func(arg)
- else:
- return "参数类型错误!"
- return inner
- return outer
复制代码
-
type_check(correct_type):这是一个外层函数,它接收一个类型(如
int 或
str)作为参数。
-
outer(func):这是一个装饰器函数,它接收被装饰的函数
func 作为参数。
-
inner(arg):这是实际包裹目标函数的内部函数。它检查参数
arg 的类型是否等于
correct_type:
- 如果类型匹配,就调用原始函数
func(arg) 并返回结果。
- 如果不匹配,返回字符串 "参数类型错误!"。
简单示例:
假设我们用它装饰一个函数:
- @type_check(int)
- def double(n):
- return n * 2
- print(double(5)) # 输出:10
- print(double("5")) # 输出:参数类型错误!
复制代码
在这个例子中,
double 函数只接受整数参数,否则会报错。
总结:这个装饰器可以帮助你在调用函数前自动验证参数类型,提高代码的健壮性。如果有更多疑问,欢迎继续提问!
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。