python装饰器初探(推荐)

作者:jingxian 时间:2023-01-19 14:40:27 

一、含有一个装饰器


#encoding: utf-8

############含有一个装饰器#########
def outer(func):
 def inner(*args, **kwargs):#要装饰f1(),这里用这俩形式参数,可以接受任意个参数,不管f1定义几个参数
   print "1"
   r = func(*args, **kwargs)#这里要用func,不要用f1
   print "2"
   return r
 return inner

@outer #这里outer不要加括号
def f1(a1, a2):
 print "a1 + a2 = "
 return a1 + a2

f1(1,2)

二、含有两个(多个)装饰器


############含有二个装饰器#########

def outer0(func):#第一个
 def inner(*args, **kwargs):
   print "AAAAAAAAA"
   r = func(*args, **kwargs)
   print "BBBBBBBB"
   return r
 return inner

def outer(func): #第二个
 def inner(*args, **kwargs):#要装饰f1(),这里用这俩形式参数,可以接受任意个参数,不管f1定义几个参数
   print "1"
   r = func(*args, **kwargs)#这里要用func,不要用f1
   print "2"
   return r
 return inner
@outer0 #俩装饰器,流程就是:执行f1()的时候,先执行outer0.inner(),outer0.inner().func调用outer的inner函数,也就是outer.inner()函数作为outer0的参数,
    # 然后outer.inner().func再调用f1()
@outer #这里outer不要加括号
def f1(a1, a2):
 print "a1 + a2 = %d" %(a1+a2)
 return 1

f1(1,2)
标签:python,装饰器
0
投稿

猜你喜欢

  • Python获取单个程序CPU使用情况趋势图

    2021-11-19 02:36:59
  • Python实现连接dr校园网示例详解

    2022-09-20 05:00:45
  • Python的join函数的用法及实例

    2023-03-08 12:39:28
  • 设计师和美工

    2008-10-27 13:43:00
  • Python利用Pydub实现自动分割音频

    2022-10-08 22:02:48
  • 利用Psyco提升Python运行速度

    2021-05-02 19:02:50
  • 基于PyQt5制作一个windows通知管理器

    2022-10-18 19:28:24
  • Python显示进度条的方法

    2023-05-25 07:38:30
  • 利用Python实现K-Means聚类的方法实例(案例:用户分类)

    2023-05-15 13:14:34
  • 成为一个顶级设计师的第三准则

    2009-09-15 21:00:00
  • 浅谈 Webpack 如何处理图片(开发、打包、优化)

    2024-06-14 20:48:11
  • 探秘TensorFlow 和 NumPy 的 Broadcasting 机制

    2023-07-22 06:09:50
  • 更改localhost为其他名字的方法

    2023-11-23 08:07:52
  • 使用sysbench来测试MySQL性能的详细教程

    2024-01-14 14:33:54
  • .Net Core服务治理Consul使用服务发现

    2023-06-25 07:49:19
  • Python接口自动化浅析数据驱动原理

    2022-02-22 21:52:01
  • Pycharm中的下载安装、配置与测试方式

    2023-11-18 01:53:27
  • SQL Server 2008中的MERGE(不仅仅是合并)

    2010-10-15 14:16:00
  • 打造设计你自己的字体 Ⅲ

    2008-03-14 07:52:00
  • 谈谈网页设计中的字体应用 (1) Font Set

    2009-11-24 12:55:00
  • asp之家 网络编程 m.aspxhome.com