python 装饰器--对有无参数的函数进行装饰
# 使用装饰器无参数的函数进行装饰
# def func(funcionName):
  #     print('-----1------')
  #     def func_in():
    #         print('--func_in---')
    #         funcionName()
    #         print('--func_2---')
  #     print('-----2------')
  #     print('-----3------')
  #     return func_in
# @func # test = func(test)
# def test():
  #     print('----testa=%d,b=%d-----'%)
# test()
# -----1------
# -----2------
# -----3------
# --func_in---
# ----test-----
# --func_2---
# 使用装饰器对有参数的函数进行装饰
# def func(funcionName):
  #     print('-----1------')
  #     def func_in(a,b):  #如果a,b没有定义,那么会导致40号调用失败
    #         print('--func_in---')
    #         funcionName(a,b)  # 如果没有把a,b当做实参进行传递,那么会导致调用37行失败
    #         print('--func_2---')
  #     print('-----2------')
  #     print('-----3------')
  #     return func_in
# @func
# def test(a,b):     #37行
#      print('----test---a=%d,b=%d-----'%(a,b))
# test(10,11) #40行
# 对不定性参数传递
def func(funcionName):
      print('-----func---1------')
      def func_in(*args,**kwargs):  
            # *args    将来是以元组保存,没有进行拆包
            # **kwargs 将来是以字典保存,没有进行拆包
    print('--func_in---1---')
            funcionName(*args,**kwargs)  
            print('--func_in----2---')
      print('-----func---2------')
      return func_in
@func
def test(a,b,c):     
     print('----test---a=%d,b=%d,c=%d-----'%(a,b,c))
@func
def test2(a,b,c,d):     
       print('----test---a=%d,b=%d,c=%d,d=%d-----'%(a,b,c,d))
test(10,11,9)        
test2(10,11,9,11) 
# -----func---1------
# -----func---2------
# -----func---1------
# -----func---2------
# --func_in---1---
# ----test---a=10,b=11,c=9-----
# --func_in----2---
# --func_in---1---
# ----test---a=10,b=11,c=9,d=11-----
# --func_in----2---
python 装饰器--对有无参数的函数进行装饰的更多相关文章
- 装饰器带类参数 & 一个函数应用多个装饰器
		装饰器:不改变原函数的基础上,给函数增加功能的方式,称为装饰器 即:为已经存在的对象添加额外的功能 装饰器其实就是一个闭包,把一个函数当做参数后返回一个替代版的函数 decos.py:(装饰器的参数类 ... 
- 装饰器1、无参数的装饰器 2、有参数的装饰器 3、装饰器本身带参数的以及如果函数带return结果的情况
		装饰器分成三种: 1.无参数的: 2.有参数的: 3.装饰器本身带参数的. 装饰器decorator又叫语法糖 定义:本质是函数,器就是函数的意思.装饰其他函数.就是为其他函数添加附加功能. 原则: ... 
- python 全栈开发,Day11(函数名应用,闭包,装饰器初识,带参数以及带返回值的装饰器)
		一.函数名应用 函数名是什么?函数名是函数的名字,本质:变量,特殊的变量. 函数名(),执行此函数. python 规范写法 1. #后面加一个空格,再写内容,就没有波浪线了. 2.一行代码写完,下面 ... 
- python 装饰器 第六步:带有收集参数的函数的装饰器
		#第六步:带有收集参数的函数的装饰器 #装饰器函数 def kuozhan(func): #内部函数(扩展之后的eat函数) def neweat(*w,**n): #以下三步就是扩展之后的功能,于是 ... 
- python笔记3 闭包 装饰器 迭代器 生成器 内置函数 初识递归  列表推导式 字典推导式
		闭包 1, 闭包是嵌套在函数中的 2, 闭包是内层函数对外层函数的变量(非全局变量)的引用(改变) 3,闭包需要将其作为一个对象返回,而且必须逐层返回,直至最外层函数的返回值 闭包例子: def a1 ... 
- python装饰器探究与参数的领取
		首先上原文, 现在,假设我们要增强now()函数的功能,比如,在函数调用前后自动打印日志,但又不希望修改now()函数的定义,这种在代码运行期间动态增加功能的方式,称之为"装饰器" ... 
- Python基础(7)_闭包函数、装饰器
		一.闭包函数 闭包函数:1.函数内部定义函数,成为内部函数, 2.改内部函数包含对外部作用域,而不是对全局作用域名字的引用那么该内部函数成为闭包函数 #最简单的无参闭包函数 def func1() n ... 
- [python 基础]python装饰器(二)带参数的装饰器以及inspect.getcallargs分析
		带参数的装饰器理解无非记住两点: 1.本质不过在基本的装饰器外面再封装一层带参数的函数 2.在使用装饰器语法糖的时候与普通装饰器不同,必须要加()调用,且()内的内容可以省略(当省略时,admin默认 ... 
- python 装饰器(六):装饰器实例(三)内置装饰器
		内置的装饰器和普通的装饰器原理是一样的,只不过返回的不是函数,而是类对象,所以更难理解一些. @property 在了解这个装饰器前,你需要知道在不使用装饰器怎么写一个属性. def getx(sel ... 
随机推荐
- Akka Quickstart with Java-笔记
			官方文档: http://developer.lightbend.com/guides/akka-quickstart-java/?_ga=2.177525157.1012573474.1504767 ... 
- JavaWeb - Servlet教程
			http://www.runoob.com/servlet/servlet-tutorial.html 
- Gradle的使用
			⒈下载 点击此处 ⒉安装 1.解压 2.添加环境变量GRADLE_HOME 指向解压缩文件的磁盘地址 3.PATH环境变量添加%GRADLE_HOME%\bin ⒊使用阿里云仓库 repositori ... 
- caffe调试
			这里说一下关于如何进行Caffe的调试: 参考:https://blog.csdn.net/tsyccnh/article/details/51679121 简要说一下步骤: (1)首先对libcaf ... 
- CentOS 6与7对比【转】
			片段1:时间同步 CentOS 6 逐步: ntpd或ntpdate 直接: ntpdate -b(通常加到crontab) CentOS 7 方法1: systemctl start chronyd ... 
- boost::tokenizer详解
			tokenizer 库提供预定义好的四个分词对象, 其中char_delimiters_separator已弃用. 其他如下: 1. char_separator char_separator有两个构 ... 
- 判断鼠标进入容器的方向小Demo
			参考资料: 贤心博客:http://sentsin.com/web/112.html, Math.atan2(y,x) 解释 :http://www.w3school.com.cn/jsref/jsr ... 
- Day8--------------ssh服务
			---恢复内容开始--- 远程管理 ssh服务端 oppenssh-server ssh客户端 oppenssh-clients Xshell 开启服务端 service sshd status 点击 ... 
- Java并发编程的4个同步辅助类(CountDownLatch、CyclicBarrier、Semaphore、Phaser)
			我在<JDK1.5引入的concurrent包>中,曾经介绍过CountDownLatch.CyclicBarrier两个类,还给出了CountDownLatch的演示案例.这里再系统总结 ... 
- GDOI2018 滑稽子图 [斯特林数,树形DP]
			传送门并没有 思路 见到那么小的\(k\)次方,又一次想到斯特林数. \[ ans=\sum_{T} f(T)^k = \sum_{i=0}^k i!S(k,i)\sum_{T} {f(T)\choo ... 
