day16课程内容:

  装饰器:

def outer():
x=10
def inner():
print(x)
return inner
outer()() #inner 是局部变量,10
闭包:如果在一个内部函数里,对外部作用域(但不是对全局作用域)的变量进行引用,那么内部函数就认为就被认为是闭包。
对修改封闭,对扩展开放,开放封闭原则!
import time
def foo():
print('foo')
time.sleep(1)
def bar():
print('bar')
time.sleep(1)
def show_time(f):
start_time=time.time()
f()
end_time=time.time()
print(end_time-start_time)
show_time(foo) #实现了给任意函数增加计时的功能,但是同时也改变了函数的调用方式
#########
import time
def show_time(f): #简单的装饰器
def inner():
start=time.time()
f()
end=time.time()
print(end-start)
return inner @show_time # 等价于:foo=show_time(foo)
def foo():
print('拆东墙,当年的明月换拨人看。')
time.sleep(1)
foo()
#拆东墙,当年的明月换拨人看。
#1.0000572204589844 装饰器
@show_time
def bar():
print('兴也苦亡也苦')
time.sleep(2)
bar() ######给功能函数加参数,的装饰器###
import time
def show_time(f):
def inner(*x,**y):
start=time.time()
f(*x,**y)
end=time.time()
print(end-start)
return inner @show_time
def foo(*a,**b):
sum=0
for i in a:
sum+=i
print(sum)
time.sleep(1) foo(1,2,3,3,3,6)
# 18
# 1.0000569820404053 ##给装饰器加参数的装饰器#####
import time
def logger(j=0):
def show_time(f):
def inner(*a,**b):
start=time.time()
f(*a,**b)
end=time.time()
print(end-start)
if j==1:
print('打印日志')
return inner
return show_time
@logger(1)
def foo(*x,**y):
sum=0
for i in x:
sum+=i
print(sum)
time.sleep(1)
foo(3,1,2,3)
# 9
# 1.0000572204589844
# 打印日志

老男孩Python全栈开发(92天全)视频教程 自学笔记16的更多相关文章

  1. 老男孩Python全栈开发(92天全)视频教程 自学笔记02

    day2课程目录: 操作系统的历史 二进制运算 字符编码与计算机容量 编程语言介绍 开发语言分类 演讲能力锻炼 day2课程内容梳理: 操作系统发展史: Unix系统 极其稳定 现在很多银行还在用 L ...

  2. 老男孩Python全栈开发(92天全)视频教程 自学笔记03

    day3课程目录: pyhton的历史 32bit和64bit系统的区别 Python版本的选择 第一个pyhton程序 文件后缀名及系统环境变量的介绍 pyhton程序的执行和其他编程语言的简单对比 ...

  3. 老男孩Python全栈开发(92天全)视频教程 自学笔记01

    day1课程目录: 开课介绍(1) 开课介绍(2) 开课介绍(3) 电脑简史(1) 电脑简史(2) 计算机结构 day1课程内容梳理: 导师介绍: Alex Li(金角大王):买了一辆特斯拉,喜欢姑娘 ...

  4. 老男孩Python全栈开发(92天全)视频教程 自学笔记09

    day9课程内容: 乌班图(ubuntu)64位系统 和 VMware 虚拟机安装(官网收费又麻烦,在网上找资源 安装vmware: vm运行(秘钥找度娘)--文件--新建虚拟机--自定义 下一步-- ...

  5. 老男孩Python全栈开发(92天全)视频教程 自学笔记20

    day20课程内容: 模块: #模块一共三种:1.Python标准库 2.第三方模块 3.应用程序自定义的模块#import sysimport jisuanapp#print(jisuanapp.a ...

  6. 老男孩Python全栈开发(92天全)视频教程 自学笔记07

    day7课程内容: Python的编码解码 二进制 --->ASCII:只能存英文和拉丁字符,一个字符占一个字节,8位 ------->gb2312:只能6700多个中文,1980年 -- ...

  7. 老男孩Python全栈开发(92天全)视频教程 自学笔记06

    day6课程内容: tuple(元祖) 创建元祖: tup0=() #没有元素的一个元祖 tup1=(20,)#只有一个元素的元祖 元祖可读,不可修改 Dictionary(字典)#Python里唯一 ...

  8. 老男孩Python全栈开发(92天全)视频教程 自学笔记05

    day5课程内容: 集成开发环境(IDE) VIM #经典的Linux下的文本编辑器 Eclipse #Java IDE Visual Studio #微软开发的IDE notepad++ subli ...

  9. 老男孩Python全栈开发(92天全)视频教程 自学笔记04

    day4课程目录: 逻辑运算符 while循环 day4课程内容梳理: 逻辑运算符 算数运算符:+,-,*,/,%,** 比较运算符:< ,>, ==,<=,>=,!=, 逻辑 ...

  10. 老男孩Python全栈开发(92天全)视频教程 自学笔记21

    day21课程内容:  json: #序列化 把对象(变量)从内存中 编程可存储和可传输的过程 称为序列化import jsondic={'name':'abc','age':18}with open ...

随机推荐

  1. python3 第三章 - 程序的基本结构

    1.编码 默认情况下,Python 3 源码文件以 UTF-8 编码,所有字符串都是 unicode 字符串. 当然你也可以为源码文件指定不同的编码: # -*- coding: cp-1252 -* ...

  2. Java多线程之线程的创建

    好久没有更博客了,最近一直在忙工作的事情.现在终于空下来了,这2天会抓紧时间整理多线程和socket,把JavaSE结束掉. 关于多线程,首先会涉及到哪些东西呢?首先要了解线程,为什么要使用线程,线程 ...

  3. MYSQL导入大量数据碰到的问题及解决方法

    在项目中,经常会碰到往数据库中导入大量数据,以便利用sql进行数据分析.在导入数据的过程中会碰到一些需要解决的问题,这里结合导入一个大约4G的txt数据的实践,把碰到的问题以及解决方法展现出来,一方面 ...

  4. 童攀TP5企业网站实战笔记

    $this->assign('data',$data) ---恢复内容开始--- return view();   载入视图 {include file='public/head'} 包含文件 ...

  5. nagios中监测dns 227.7.128.68的网络状态

    [root@nhserver2 ~]# cd /usr/local/nagios/etc/objects [root@nhserver2 objects]# vim hosts_dns.cfgdefi ...

  6. 《.NET 设计规范》第 9 章:常用的设计模式

    第 9 章:常用的设计模式 9.1 聚合组件 考虑为常用的特性域提供聚合组件. 要用聚合组件来对高层的概念(物理对象)进行建模,而不是对系统级的任务进行建模. 要让聚合组件的名字与众所周知的系统实体相 ...

  7. Java对正则表达式的支持(一)

    Java对正则表达式的支持主要体现在String.Pattern.Matcher和Scanner类. 1.Pattern.Matcher 先看一个Pattern和Matcher类使用正则表达式的例子. ...

  8. HDU 4825 Xor sum

    trie树的异或和问题 本题是一道经典题,使用trie树维护所给出的集合,我们知道等比数列前n项的和比第n+1项小,所以本题可以使用贪心策略,对于每一个询问,我们从高位向低位匹配,寻找最大异或值,向下 ...

  9. bzoj 1598: [Usaco2008 Mar]牛跑步 [k短路 A*] [学习笔记]

    1598: [Usaco2008 Mar]牛跑步 题意:k短路 ~~貌似A*的题目除了x数码就是k短路~~ \[ f(x) = g(x) + h(x) \] \(g(x)\)为到达当前状态实际代价,\ ...

  10. WPF 圆角输入框

    今天打算来做一个圆角的输入框 默认输入框: 这个输入框不好看,并且在XP 跟 WIN 7  WIN10 效果 都不太一样 我们今天不用模板的方式,而是 最简单的方式 来实现 圆角 输入框: ----- ...