在编程中,如对函数的接收类型,有要求,比如:
def add(x, y):
return x + y
if __name__ == '__main__':
x = add(2,3)
print("x=",x)
我们一看,就知道,这个出现:TypeError。
那么在编程时,为了使用接收的参数的正确。我们可以使用python中的装饰器。
构建一个装饰器:
def requires_ints(decorated):
def inner(*args, **kwargs):
kwarg_values = [i for i in kwargs.values()]
for arg in list(args) + kwarg_values:
if not isinstance(arg, int):
raise TypeError("参数中存在不是Int类型的:", decorated.__name__)
return decorated(*args, **kwargs)
return inner
测试方法:
@requires_ints
def add(x, y):
return x + y
if __name__ == '__main__':
# print(help(add))
x = add(2,3)
print("x=",x)
输出过程:
完整代码:
# -*- coding: utf8 -*-
"""
# __author__ = "Tom枫明"
# HomePage: https://blog.csdn.net/fm345689
# Python -V: Python 3.6.1
"""
"""
装饰器:判断对应是否为一个Int类型
"""
def requires_ints(decorated):
def inner(*args, **kwargs):
kwarg_values = [i for i in kwargs.values()]
for arg in list(args) + kwarg_values:
if not isinstance(arg, int):
raise TypeError("参数中存在不是Int类型的:", decorated.__name__)
return decorated(*args, **kwargs)
return inner
@requires_ints
def add(x, y):
return x + y
if __name__ == '__main__':
# print(help(add))
x = add(2,3.0)
print("x=",x)