本节课程内容概览: 1.装饰器 2.列表生成式&迭代器&生成器 3.json&pickle数据序列化 1. 装饰器 1.1 定义: 本质上是个函数,功能是装饰其他函数—就是为其他函数添加附加功能 1.2 装饰器原则: 1)  不能修改被装饰函数的源代码: 2)  不能修改被装饰函数的调用方式: 1.3 实现装饰器知识储备: 1.3.1 函数即“变量” 定义一个函数相当于把函数体赋值给了函数名 变量可以指向函数 >>> def func(): ...... prin…
生成器 在Python中,一边循环一边计算的机制,称为生成器:generator. 如: >>> g = (x * x for xin range(10)) >>> g3 <generator object <genexpr> at 0x1022ef630> 此处g就是一个生成器. 迭代器 我们已经知道,可以直接作用于for循环的数据类型有以下几种: 一类是集合数据类型,如list.tuple.dict.set.str等: 一类是generato…
yeild:返回一个生成器对象: 装饰器:本身是一个函数,函数目的装饰其他函数(调用其他函数) 功能:增强被装饰函数的功能 装饰器一般接受一个函数对象作为参数,以便对其增强 @原函数名  来调用其他函数 递归:递归需要边界条件,递归前进段和递归返回段: 10*9*8*7*6*5*4*3*2*1 10*9 10*(10-1)*(10-1)-1) 协程: 函数的设计规范: 耦合性: (1)通过参数接受输入,以及通过return产生输出以保证函数的独立性: (2)尽量减少使用全局变量进行函数间通信:…
functools.wraps装饰器用于显示被包裹的函数的名称 import functools def node(func): #@functools.wraps(func) def wrapped(*args, **kwargs): print "print from node" return wrapped @node def func(): print "print from func" print func.__name__ 当没有wraps包裹时,输出的…
# -*-coding=utf-8 -*-#实现一个函数执行后计算执行时间的功能 __author__ = 'piay' import time, functools def foo(): ''' 定义一个普通函数 :return: ''' print 'this is foo' foo() ''' 这里如果我们需要查看函数执行时间,修改为: ''' def foo1(): start_time = time.clock() print 'this is foo1' end_time = tim…
**装饰器** - [ ] 装饰器和闭包有很大的联系.有时你需要在不改变源代码的情况下修改已经存在的函数.装饰器的运用可以提高效率,减少重复的代码. - [ ] 装饰器的实质是一个函数.它把一个函数作为输入并且返回另一个函数. 在装饰器中,通常使用下面这些python技巧:1.*args 和 **kwargs2.闭包3.作为参数的函数例函数 document_it() 定义了一个装饰器,会实现如下的功能: - [ ] 打印输出函数的名字和参数的值 - [ ] 执行含有参数的函数 - [ ] 打印…
本节重点: 掌握装饰器相关知识 ​ python装饰器就是用于拓展原来函数功能的一种函数,这个函数的特殊之处在于它的返回值也是一个函数,使用python装饰器的好处就是在不用更改原函数的代码前提下给函数增加新的功能. 装饰器扩展登录功能 import json def auth_user(username, password): user_dict = json.load(open("file/user1.txt", "r", encoding="gbk&…
# 函数使用 ### 零碎知识 - 灵活的if-else ```python a = 3 if False else 5 print(a) ''' if False: a = 3 else: a = 5 ''' ``` - 灵活的and/or ```python # 前面的表达式为真,才会执行后面的表达式 a = True and 3 print(a) # 前面的表达式为假,后面的表达式不需要执行 b = False and 5 print(b) # 前面的表达式为真,后面的表达式就不需要执行了…
1. 需求 开发封闭原则:虽然在这个原则是用的面向对象开发,但是也适用于函数式编程,简单来说,它规定已经实现的功能代码不允许被修改,但可以被拓展,即: 封闭:已实现的功能代码块 开发:对拓展开发 2. 使用装饰器 2.1 未使用装饰器(原理) def w1(func): def inner(): # 验证1 # 验证2 # 验证3 print("----正在验证权限----") func() return inner def f1(): print("---f1----&qu…
1.必备知识 #### 一 #### def foo(): print 'foo' foo #表示是函数 foo() #表示执行foo函数 #### 二 #### def foo(): print 'foo' foo = lambda x: x + 1 foo() # 执行下面的lambda表达式,而不再是原来的foo函数,因为函数 foo 被重新定义了 为什么需要装饰器? 来自知乎大神的形象比方 内裤可以用来遮羞,但是到了冬天它没法为我们房等御寒,宗明的人发明了长裤,有了长裤后宝宝再也不冷了,…