这篇教程Python的@装饰器的作用小结写得很实用,希望能帮到您。 我们在编程过程中,常常会遇到这种需求: 比如,我想开发一款计算器,我已经写好了一堆函数,用于执行各种计算,那么我们需要在执行各种计算函数前,首先对输入的数据进行检查,确保他们必须得是数值才允许执行函数,而不能是字符串; 又如,我想编写一个用于计算三角形周长、面积、某个角角度的模块,已经写好几个函数用于计算,那么,在执行计算前,首先要确保输入的三条边长能够构成三角形,再进行计算才有意义; 再比如,我想开发某款网络应用,写了一些函数用于实现用户的某些操作,那么,得要先检查确认该用户已经登录了,才允许执行这些操作。 这些需求,归纳起来,就是,在执行主函数之前,常常要先执行某个预函数,进行一些校验之类的操作。 这类需求是非常常见的,也是保证程序完整性、健壮性的重要举措。所以,怎么做才比较简单呢? 你会说,这很简单啊,在每个函数里面写上if语句不就得了。就拿那个计算器而言,如果我们要写加减乘除,我们可以这样: def plus(a,b): if type(a)==type(0) and type(b)==type(0): #假设该计算器只能计算整数,如果要计算小数再or type(0.0) return a+b else: print('Type must be number') #检测到数据类型不对,先输出报警,函数值返回None return Nonedef minus(a,b): if type(a)==type(0) and type(b)==type(0): return a-b else: print('Type must be number') return Nonedef multiply(a,b): if type(a)==type(0) and type(b)==type(0): return a*b else: print('Type must be number') return Nonedef divide(a,b): if type(a)==type(0) and type(b)==type(0): return a/b else: print('Type must be number') return None 这个嘛,直接暴力。但是呢,这里只有4个函数,假如你开发的计算器有几十几百个函数,每个函数都要套上if语句,这不得麻烦死了,不烦死也 使用python自动办公的实例代码 python通过pillow识别动态验证码的示例代码 |