类的学习笔记(3)——自定义装饰器及装饰器的理解

例一: 实现多加100

def fun1(x):
     def fun2(y):
          return x(y)+100
      return fun2              #装饰器

def ff(y):
      return y*y           ff(4)=16

@fun1              此时fun1相当于执行了     ff= fun1(ff)  #x=ff
def ff(y):
      return y*y          ff(4)=116

例二:  实现过滤非整数型的参数,使能够实现多数相加

def filterarg(func):
     def fit(*arg):
          if len(arg) ==0:
             return 0
           for i in arg:
               if not isinstance(i,int):
                  return 0
            return func(*arg)
        return fit                 #装饰器

@filterarg
def sums(*arg):
    return sum(arg)       *的作用是将多个参数整合成列表,是指能够让sum(arg)运行。注意,sum(arg)中只能传一个参数,这个参数可以是列表,sum([1,2,3])=6.   sum(1,2,3)报错

上面两个实例仅仅供理解学习用,实际功能不大。

猜你喜欢

转载自blog.csdn.net/huang1600301017/article/details/84111877
今日推荐