python学习之路-装饰器的使用

简介: 开发者学堂课程,了解Python语言的基本特性、编程环境的搭建、语法基础、算法基础等,了解Python的基本数据结构,对Python的网络编程与Web开发技术具备初步的知识,了解常用开发框架的基本特性,以及Python爬虫的基础知识。课程地址:https://developer.aliyun.com/learning/course/601/detail/8739

一、装饰器的简介

可以在不修改原函数的情况下扩展旧函数得到新函数

二、装饰器的使用方法

1.在不修改原函数的情况下,来对函数进行扩

defadd(a,b):
f=a+breturnfdefnew_add(a,b):
print('计算开始。。。')
r=add(a,b)
print('计算结束。。。')
returnrr=new_add(111,222)
print(r)

image.png

上边的方式,已经可以在不修改源代码的情况下对函数进行扩展了

但是这种方式要求我们每扩展一个函数就要手动创建一个新函数。

 

2.为了解决这个问题,我们创建一个函数,让这个函数可以自动的帮助我们生产函数,我们需要的是一个新函数可以对旧函数进行扩展

defadd(a,b):
f=a+breturnfdefnul(a,b):
f=a*breturnfdeffn():
return'这里是fn函数'defbegin_end(old):
'''       用来对其他函数进行扩展,使其他函数可以在执行前打印开始打印,       执行后打印结束打印       参数:old 要扩展的函数对象    '''# 创建一个新函数defnew_function(*args , **kwargs):
print('开始执行')
# 调用被扩展的函数result=old(*args , **kwargs)
print('执行结束')
returnresult# 返回新函数returnnew_functionf=begin_end(fn)
f2=begin_end(add)
print(f())
print(f2(1,2))

image.png

三、装饰器的好处

1.可以修改多个函数

2.方便后期的维护

3.不违反开闭原则(OCP)

相关文章
|
2月前
|
存储 Java 数据处理
(numpy)Python做数据处理必备框架!(一):认识numpy;从概念层面开始学习ndarray数组:形状、数组转置、数值范围、矩阵...
Numpy是什么? numpy是Python中科学计算的基础包。 它是一个Python库,提供多维数组对象、各种派生对象(例如掩码数组和矩阵)以及用于对数组进行快速操作的各种方法,包括数学、逻辑、形状操作、排序、选择、I/0 、离散傅里叶变换、基本线性代数、基本统计运算、随机模拟等等。 Numpy能做什么? numpy的部分功能如下: ndarray,一个具有矢量算术运算和复杂广播能力的快速且节省空间的多维数组 用于对整组数据进行快速运算的标准数学函数(无需编写循环)。 用于读写磁盘数据的工具以及用于操作内存映射文件的工具。 线性代数、随机数生成以及傅里叶变换功能。 用于集成由C、C++
331 1
|
2月前
|
存储 JavaScript Java
(Python基础)新时代语言!一起学习Python吧!(四):dict字典和set类型;切片类型、列表生成式;map和reduce迭代器;filter过滤函数、sorted排序函数;lambda函数
dict字典 Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度。 我们可以通过声明JS对象一样的方式声明dict
196 1
|
2月前
|
算法 Java Docker
(Python基础)新时代语言!一起学习Python吧!(三):IF条件判断和match匹配;Python中的循环:for...in、while循环;循环操作关键字;Python函数使用方法
IF 条件判断 使用if语句,对条件进行判断 true则执行代码块缩进语句 false则不执行代码块缩进语句,如果有else 或 elif 则进入相应的规则中执行
294 1
|
2月前
|
测试技术 Python
Python装饰器:为你的代码施展“魔法”
Python装饰器:为你的代码施展“魔法”
250 100
|
3月前
|
设计模式 缓存 监控
Python装饰器:优雅增强函数功能
Python装饰器:优雅增强函数功能
278 101
|
2月前
|
缓存 Python
Python装饰器:为你的代码施展“魔法
Python装饰器:为你的代码施展“魔法
155 88
|
3月前
|
缓存 测试技术 Python
Python装饰器:优雅地增强函数功能
Python装饰器:优雅地增强函数功能
224 99
|
3月前
|
存储 缓存 测试技术
Python装饰器:优雅地增强函数功能
Python装饰器:优雅地增强函数功能
198 98
|
3月前
|
缓存 Python
Python中的装饰器:优雅地增强函数功能
Python中的装饰器:优雅地增强函数功能
|
3月前
|
存储 缓存 测试技术
理解Python装饰器:简化代码的强大工具
理解Python装饰器:简化代码的强大工具

推荐镜像

更多