# -*- coding: utf-8 -*-

#coding=utf-8

'''

@author: tomcat

@license: (C) Copyright 2017-2019, Personal exclusive right.

@contact: liliang07@yungengxin.com

@software: coding

@file: decorator1.py

@time: 2019/7/26 11:25

'''

'''

接受参数的解释器

'''

import inspect

def log(text):

def decorator(func):

def wrapper(*args,**kwargs):

print("text={},name={}".format(text,func.__name__))

res=func(*args,**kwargs)

return res

return wrapper

return decorator

@log('excuse')

def add(x,y):

return x + y

print(add(3,4))

'''

接受参数的解释器

'''

def outer_decorator(*outer_args,**outer_kwargs):

def decorator(fn):

def decorated(*args,**kwargs):

decorator_args = inspect.getcallargs(outer_decorator, *outer_args, **outer_kwargs)

print("outer_args={},outer_kwargs={},decorator_args={},func_name={}".format(outer_args, outer_kwargs,decorator_args,outer_decorator.__name__))

decorated_args = inspect.getcallargs(fn, *args, **kwargs)

res=fn(*args, **kwargs)

print("arg={},keord={},decorated_args={},func_name={}".format(args, kwargs, decorated_args,fn.__name__))

return res

return decorated

return decorator

@outer_decorator(1,2,"test",test1=2)

def foo(a,b,c):

return a+b+c

print(foo(1,6,c=6))

def f (a ,b=1,*pos,**named):

print("say hello")

print(inspect.getcallargs(f, 1, 2, 4,3,t="test"))

python 装饰器 参数-python装饰器参数那些事_接受参数的装饰器相关推荐

  1. python装饰器原理-Python装饰器完全解读

    1 引言 装饰器(Decorators)可能是Python中最难掌握的概念之一了,也是最具Pythonic特色的技巧,深入理解并应用装饰器,你会更加感慨--人生苦短,我用Python. 2 初步理解装 ...

  2. python 装饰器 参数-[Python]写个带参数的装饰器

    上篇文章 Python装饰器为什么难理解?从函数到装饰器一步一步介绍了Python装饰器的来由,不知你对装饰器理解了没有,强烈建议你自己动手写个装饰器应用到项目中加深理解.装饰器可以很简单,也可以很复 ...

  3. python 装饰器 参数-python装饰器的详细解析

    什么是装饰器? python装饰器(fuctional decorators)就是用于拓展原来函数功能的一种函数,目的是在不改变原函数名(或类名)的情况下,给函数增加新的功能. 这个函数的特殊之处在于 ...

  4. python装饰器带参数函数二阶导数公式_MVision/caffe_简介_使用.md at master · Ewenwan/MVision · GitHub...

    2. caffe 模型配置文件 prototxt 详解 每个模型由多个 层 构成 layer {{{{ name: "{}" #层名字,可随意取名 type: "{}&q ...

  5. python装饰器函数-python之路——装饰器函数

    阅读目录 楔子 作为一个会写函数的python开发,我们从今天开始要去公司上班了.写了一个函数,就交给其他开发用了. deffunc1():print('in func1') 季度末,公司的领导要给大 ...

  6. python装饰器实例-Python函数装饰器--实例讲解

    一.装饰器定义: 1.装饰器的本质为函数: 2.装饰器是用来完成被修饰函数的附加功能的 所以:装饰器是用来完成被修饰函数附属功能的函数 装饰器的要求: 1.不能修改被修饰函数的源代码: 2.不能更改被 ...

  7. python装饰器作用-Python装饰器详解

    1.闭包函数 在看装饰器之前,我们先来搞清楚什么是闭包函数.python是一种面向对象的编程语言,在python中一切皆对象,这样就使得变量所拥有的属性,函数也同样拥有. 这样我们就可以理解在函数内创 ...

  8. python装饰器原理-Python装饰器原理与用法分析

    这篇文章主要介绍了Python装饰器原理与用法,结合实例形式分析了Python装饰器的概念.原理.使用方法及相关操作注意事项,需要的朋友可以参考下 本文实例讲述了Python装饰器原理与用法.分享给大 ...

  9. python装饰器作用-python 装饰器

    以前你有没有这样一段经历:很久之前你写过一个函数,现在你突然有了个想法就是你想看看,以前那个函数在你数据集上的运行时间是多少,这时候你可以修改之前代码为它加上计时的功能,但是这样的话是不是还要大体读读 ...

最新文章

  1. SPOJ 375. Query on a tree (树链剖分)
  2. 一次检验自己技术和耐力的碎片提取经历
  3. 【Python】Jupyter Notebook这款「骚气满满」的小工具,简直太爱了!
  4. Java:重写equals()和hashCode() 1
  5. 保镖机器人作文_我的小保镖作文500字
  6. 国外计算机专业入门语言,【转自知乎】给想要报考计算机专业学生的一些建议...
  7. 云中台技术架构_为什么开放基础架构在云中很重要
  8. GNS3专用 Cisco IOS下载
  9. 二进制数转换为十进制数c语言程序代码,任意二进制数转换为十进制数
  10. 【I.MX6ULL】6ull 加载 linux 驱动模块失败
  11. FLV视频合并-JAVA代码
  12. 通天塔导游:各种编程语言优缺点
  13. 基于JSP实现医院病历管理系统,程序员如何在工作中自我增值
  14. bt5 note [7] 无线破解
  15. mw325r 服务器无响应),新版水星(Mercury)MW325R拨不上号怎么办?【图解】
  16. 近千首流行音乐MP3直接下载
  17. Android 进阶笔记,包含常用的技术框架、博客社区、书籍等。
  18. 路由器web向导页面
  19. client Sdk
  20. 我的物联网项目(二十六) 商家微信充值流程优化

热门文章

  1. 手脱UPX v0.89.6 - v1.02
  2. 怎样知道一个数是不是2的N次方,怎样判断一个数是奇数还是偶数
  3. SpringBoot整合RabbitMQ-整合演示
  4. c# tcp备忘及networkstream.length此流不支持查找解决
  5. 各种大型网站技术架构
  6. roslyn生成html,Visual Studio 2017 bin \ roslyn文件在生成期间被锁定
  7. python绘制简单直方图-Python数据分析:统计函数绘制简单图形
  8. python新手教程 从零开始-Python零基础从零开始学习Python十分钟快速入门
  9. python绘制3维图-Python 绘制 3 维以上的高维图
  10. python语言编程环境-day02--编程语言的分类与Python开发环境的搭建