python的装饰器 --练习题

要求
编写装饰器required_ints, 条件如下:
1). 确保函数接收到的每一个参数都是整数;
2). 如果参数不是整形数, 打印 TypeError:参数必须为整形

编程

import functools
def required_ints(func):
    @functools.wraps(func)
    def wrapper(*args,**kwargs): # (1,2,....)
        for i in args:
            # if isinstance(i,int):
            #     pass
            # else:
            #     print('函数所有的参数并非全是int型')

            if not  isinstance(i,int):
                print('函数所有的参数并非都是int型')
                break
        else:
            res = func(*args,**kwargs)
            return res

    return wrapper

@required_ints
def add(a,b):
    return a+b
@required_ints
def mymax(a,b,c,d):
    return max(a,b,c,d)

print(add(1,2.0))

结果
在这里插入图片描述

发布了103 篇原创文章 · 获赞 1 · 访问量 946

猜你喜欢

转载自blog.csdn.net/qq_45652989/article/details/103951618