Bull's blog Bull's blog
首页
工作
  • 分类
  • 标签
  • 归档
关于

Bull

首页
工作
  • 分类
  • 标签
  • 归档
关于
  • 马上消费

  • 斗虫

    • 基础课件

      • python基础和条件语句
      • 基础数据类型_改
      • 函数
      • 1 函数练习
      • 32文件操作
      • 3 异常
      • 面向对象
      • 1面向对象案例-学生管理系统
      • 1Python基础练习题
      • 自动化测试理论
      • 2 接口测试基础
      • 3 requests
      • 4 代码
      • 5 简单封装
      • 1 pytest
      • 签名的设计
      • 接口case设计
      • 3 新建一个接口
      • x装饰器语法
        • 1.python装饰器原理基础
        • 2.装饰器的语法
        • 3.一般用来做什么?
        • 4.如何编写一个装饰器
      • httprunner2.x工具快速入门
      • httprunner3.x的简介
      • Flask框架
      • 了解任务
      • mock服务
      • UI自动化策略
      • PageObject模式
      • pytest参数化进阶
      • pytest框架生成报告
      • Yaml运用
      • 日志类模板
      • 持续集成
      • jdk配置
      • Linux基础
      • Jenkins主从测试任务
      • conda管理项目环境
      • 面试题-栈结构
      • 面试题-找众数
      • 正交测试法
      • 装饰器
      • 综合面试题_原版
    • RF

  • 天眼查

  • 某米

  • 工作经历
  • 斗虫
  • 基础课件
wangyang
2023-09-02
目录

x装饰器语法

# 装饰器

Python的装饰器是面试常被问到的问题之一,如果你的简历里描述会Python.那么大概率会被问到.

那么我们应该怎么回答这个问题呢?

这里我从几个角度来解释装饰器的作用,大家可以挑选符合自己的说法

# 1.python装饰器原理基础

Python中的装饰器,本质上就是一个高阶函数,这里高阶函数指定就是"一个返回值是函数的函数"

# 2.装饰器的语法

在python中使用装饰器,有两个组成部分.

①@符号调用装饰器

②定义被装饰的方法

范例如下:

@装饰器名字

定义被装饰的函数

@logger
def func():
	pass
1
2
3

# 3.一般用来做什么?

装饰器可以在不修改函数的情况下,增加额外的功能.这是官方给装饰器的定义

实际上我们会把一些业务功能之外的,附属需求用装饰器来实现.比如:为我们的函数添加日志记录,性能监控器,埋点计数器.大家也都知道,修改写好的函数是非常麻烦并且容易出错的一件事.所以很适合"在不修改函数内部代码的前提下,为它包装一些额外的功能"也就是装饰器

# 4.如何编写一个装饰器

# 1.定义def关键字一个函数,唯一特殊的是它将接收另一个函数.
# 目的:并在接收函数前后添加逻辑
#     1.1定义子方法(经常叫wrapper)来编辑装饰逻辑.为了传递 被修饰函数的参数,所以使用"可变参数"
#         1.1.1 如果想编写 "前置"逻辑,在这里写
#         1.1.2 调用 被修饰函数 ,也就是执行它
#         1.1.3 如果想写 "后置" 逻辑,那么在这里写
#     固定写return wrapper
# 2.如何使用它?
# 使用@符号表示调用装饰器
# 调用的装饰器,会对它下一行的"函数定义(def func())"生效
# 
# 3.如何定义一个带参数的装饰器?
# 在普通装饰器(1)的基础上,再套一层函数定义,并且接收 装饰器参数
# 
# def func(var):
#     def wrapper(func):
#         def core(*args,**kwargs):
#             # 根据装饰器参数,进行逻辑判断
#             if var == 0 :
#                 print('逻辑1')
#             if var== 1 :
#                 print('逻辑2')
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#python自动化#自动化入门
上次更新: 2023/09/05, 02:16:11
3 新建一个接口
httprunner2.x工具快速入门

← 3 新建一个接口 httprunner2.x工具快速入门→

最近更新
01
30.快速实现接口重构测试---deepdiff库使用
09-21
02
概述
09-07
03
概述
09-07
更多文章>
Theme by Vdoing | Copyright © 2018-2025 Evan Xu | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式