python装饰器初探(推荐)

yipeiwu_com5年前Python基础

一、含有一个装饰器

#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装饰器初探(推荐)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

python 用正则表达式筛选文本信息的实例

本文主要介绍如何对多个文本进行读取,并采用正则表达式对其中的信息进行筛选,将筛选出来的信息存写到一个新文本。 文本基础操作 打开文件:open(‘文件名',‘打开方式')>>...

python端口扫描系统实现方法

本文实例讲述了python端口扫描系统实现方法。分享给大家供大家参考。具体实现方法如下: 该程序的主要功能如下: 1. 从自有API接口获取所有的外网IP段; 2. 用Nmap 遍历扫描...

基于python中theano库的线性回归

theano库是做deep learning重要的一部分,其最吸引人的地方之一是你给出符号化的公式之后,能自动生成导数。本文使用梯度下降的方法,进行数据拟合,现在把代码贴在下方 代码块...

python3 selenium 切换窗口的几种方法小结

第一种方法: 使用场景: 打开多个窗口,需要定位到新打开的窗口 使用方法: # 获取打开的多个窗口句柄 windows = driver.window_handles # 切换到当前...

python实现汽车管理系统

本文实例为大家分享了python实现汽车管理系统的具体代码,供大家参考,具体内容如下 1、定义车辆类,属性有车牌号、颜色、车型(小汽车、小卡、中卡和大卡)、到达的时间和离开的时间等信息...