python-day4

本文主要介绍Python装饰器,遵循开放封闭原则,使用语法糖@。其作用是在不修改原函数调用方式的前提下,在原函数前后添加功能,还给出了装饰器的固定模式,并简单解释了装饰器函数,最后给出了相关参考链接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

离上一次写4天了,今天主要讲讲装饰器

装饰器:

原则:开放封闭原则,对扩展是开放的,对修改是封闭的

语法糖:@

作用:不想修改原函数的调用方式,但是还想在原来的函数前后添加功能

装饰器的固定模式:def wrapper(f):

      def inner(*args,**kwargs):

      #添加装饰器之前

        ret = f(*args,**kwargs)

      #添加装饰器之后

        return ret

      return inner

 

     @wrapper   #相当于func = wrapper(func)

     def func()    #被装饰的函数

       pass

看不懂装饰器函数的话,简单理解一下:@wrapper直接就是将你装饰的函数变为装饰器函数的内函数

举例:

1.编写装饰器,为多个函数加上认证的功能(用户的账号密码来源于文件),
要求登录成功一次,后续的函数都无需再输入用户名和密码
FLAG = False

def login(f):

  def inner(*args,**kwargs):
    global FLAG
'''登录程序'''
if FLAG:
      ret = f(*args,**kwargs)
      return ret
    else:
      username = input('username')
      password = input('password')
      if username == '123' and password == '456':
        FLAG = True
        ret = f(*args,**kwargs)
        return ret
  
  return inner
@login
def shoplist_add():
  print('添加一个数据')

 

转载于:https://www.cnblogs.com/FlowerNotGiveYou/p/11155204.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值