您当前的位置:首页 > IT编程 > python
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:Python的@装饰器的作用小结

51自学网 2022-02-21 10:47:32
  python
这篇教程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识别动态验证码的示例代码

万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。