#!/usr/bin/env python
# -*- coding;utf-8 -*-
"""
1、将outer函数放入内存
2、遇见@ + 函数名,则将该函数转换为装饰器,并将@ + 函数名之后的最近的函数作为被装饰的对象
3、将inner()放入内存,返回inner
4、被装饰的对象函数调用时f1(),执行inner函数内容,遇见调用被装饰的对象时,调用被装饰函数,继续执行函数体,返回r
""" def outer(func):
def inner(*args, **kwargs):
print("前面")
r = func(*args, **kwargs)
print("后面")
return r
return inner @outer
def f1(*args, **kwargs):
print(*args, **kwargs)
f1(11, 22) @outer
def f2(a, b):
print(a + b) def f3(*args, **kwargs):
print(*args)
print(**kwargs)
li = {1: 1, 2: 2}
f3(11, 22, {1: 2})

  

最新文章

  1. 《奥威Power-BI智能分析报告制作方法 》精彩回顾
  2. kvo-观察者-iOS
  3. javascript设计模式-观察者模式
  4. The Datastore
  5. selenium python 第一个脚本
  6. 8.MVC框架开发(URL路由配置和URL路由传参空值处理)
  7. HTML5 Canvas 2D绘图
  8. cobaltstrike3.5使用记录
  9. Linux raid信息 查看
  10. Codeforces Round #460 D. Karen and Cards
  11. MyEclipse 的智能提示设置 使开发写代码的速度更快
  12. 关于DataTable序列化的事儿
  13. JAVA时间工具类,在维护的项目里的
  14. Metasploit Framework(7)客户端渗透(下)
  15. [转帖]Htop 使用详解
  16. 数据增强(每10度进行旋转,进行一次增强,然后对每张图片进行扩充10张patch,最后得到原始图片数*37*10数量的图片)
  17. [转]data-driven与决策树聚类的两种方法
  18. 解决Java Web项目中Word、Excel等二进制文件编译后无法打开的问题
  19. Linux netstat命令具体解释
  20. Okhttp封装、网络层扩展

热门文章

  1. 玩转gulp之watch监听文件自动编译
  2. [Nowcoder] 中位数
  3. (转) mysql的分区技术 .
  4. Xcode输出中文
  5. static 关键字的使用及说明
  6. python中面向对象
  7. 15-Ubuntu-文件和目录命令-查看目录内容-ls-2
  8. 错误Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/fs/FSDataInputStream排查思路
  9. PHP算法之增减字符串匹配
  10. AM8互联设置方法