本文章出自【码同学软件测试】
码同学公众号:自动化软件测试
码同学抖音号:小码哥聊软件测试
装饰器
Python的装饰器是面试常被问到的问题之一,如果你的简历里描述会Python.那么大概率会被问到.
那么我们应该怎么回答这个问题呢?
这里我从几个角度来解释装饰器的作用,大家可以挑选符合自己的说法
1.python装饰器原理基础
Python中的装饰器,本质上就是一个高阶函数,这里高阶函数指定就是"一个返回值是函数的函数"
2.装饰器的语法
在python中使用装饰器,有两个组成部分.
①@符号调用装饰器
②定义被装饰的方法
范例如下:
@装饰器名字
定义被装饰的函数
@logger
def func():
pass
3.一般用来做什么?
装饰器可以在不修改函数的情况下,增加额外的功能.这是官方给装饰器的定义
实际上我们会把一些业务功能之外的,附属需求用装饰器来实现.比如:为我们的函数添加日志记录,性能监控器,埋点计数器.大家也都知道,修改写好的函数是非常麻烦并且容易出错的一件事.所以很适合"在不修改函数内部代码的前提下,为它包装一些额外的功能"也就是装饰器
4.常用的装饰器
staticmethod 用来修饰类中的方法,使得该方法可以直接用类名访问,如cls.foo()。
classmethod 和staticmehod类似,区别在于staticmethod,classmethod会将class传入被修饰的方法中
class A(object):
a = 1
def