装饰器:在不改变原有代码的情况下,为该原函数扩展新功能特征:返回新函数,替换旧函数语法:@ 语法糖 1.装饰器原型 #例1: def kuozhan(func):    def newfunc():        print("吃饭前,无精打采")        func()        print("吃饭后,精神百倍")    return newfuncdef func():    print("我是个吃货")#手动的 把新函数 赋值 给…
step1. 先看个代码吧: def f(): ') f=lambda a:a +100 #覆盖上面的函数f print(f) #函数名指函数所在内存中的位置,入带后面括号表示执行函数 print(f(10)) out: <function <lambda> at 0x101b7b6a8> 110 以上code说明: 1.在def 函数时,以顺序执行,如果相同的函数名,会被最后函数覆盖以前的 2.如果直接func名而没有后面的圆括号的话,只指向函数在内存中的位置 3.lambda表…
一.列表生成式 a = [0,1,2,3,4,5,6,7,8,9] b = [] for i in a: b.append(i+1) print(b) a = b print(a) ---------------------------------------------- [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] a = [1,3,4,5,4,5,6,7,8,11] for index,i in enumer…
1.列表生成式,迭代器&生成器 要求把列表[0,1,2,3,4,5,6,7,8,9]里面的每个值都加1,如何实现? 匿名函数实现: a = map(lambda x:x+1, a) for i in a: print(i) 列表生成式实现: a = [i+1 for i in range(10)] 生成器 通过列表生成式,可以直接创建一个列表.但是,受到内存限制,列表容量肯定是有限的.而且,创建一个包含100万个元素的列表,不仅占用很大的存储空间,如果我们仅仅需要访问前面几个元素,那后面绝大多数…
小白发呆的看着窗外,同事们陆陆续续的地来到公司,想起算法,小白就飘飘然了.突然后面传来一声呼唤,原来是小刘! 小刘:不好意思啊!堵车了,就来晚了点,不耽误你的时间,咱们就开启的今天的培训内容吧! 小白连忙说:没事,可以开始啦! 函数内存与执行函数 小刘:那我给你看一段代码,你看看会得到什么结果 def f1(): return 'F1' x = f1() print(x) x2 = f1 print(x2) 小白看了看,很快说出了x的输出值为‘F1’,但是看到x2这里,小白就有点想不通,小白就执…
本节内容 迭代器&生成器 装饰器 Json & pickle 数据序列化 软件目录结构规范 作业:ATM项目开发 1.列表生成式,迭代器&生成器 列表生成式 孩子,我现在有个需求,看列表[0, 1, 2, 3, 4, 5, 6, 7, 8, 9],我要求你把列表里的每个值加1,你怎么实现?你可能会想到2种方式 >>> a [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>> b = [] >>> for i in…
**装饰器** - [ ] 装饰器和闭包有很大的联系.有时你需要在不改变源代码的情况下修改已经存在的函数.装饰器的运用可以提高效率,减少重复的代码. - [ ] 装饰器的实质是一个函数.它把一个函数作为输入并且返回另一个函数. 在装饰器中,通常使用下面这些python技巧:1.*args 和 **kwargs2.闭包3.作为参数的函数例函数 document_it() 定义了一个装饰器,会实现如下的功能: - [ ] 打印输出函数的名字和参数的值 - [ ] 执行含有参数的函数 - [ ] 打印…
描述符的了解: 描述符协议: python描述符是一个"绑定行为"的对象属性,在描述符协议中,它可以通过方法重写属性的访问.这些方法有: __get__, __set__, 和__delete__ 如果这些方法中的任何一个被定义在一个对 象中,这个对象就是一个描述符 总结下说人话:就是当一个类中实例化另一个类的时候,通过本类来调用另一个类的功能,控制实例对象 访问 这个属性做一些额外的操作 class Fee:       #先定义一个Fee类    def __get__(self,…
一.迭代器 二.生成器 http://www.cnblogs.com/huxi/archive/2011/07/14/2106863.html def func(): #定义生成器,和普通函数的区别是有yield关键字 print(111) yield 1 print(222) yield 2 print(333) yield 3 ret=func() #正常函数会执行,但这里并未执行,而是返回了生成器 print(ret) r1=ret.__next__() #执行生成器函数,直到遇到yiel…
闭包函数: 1.闭包函数必须在函数内部定义 2.闭包函数可以引用外层函数的名字 闭包函数是 函数嵌套.函数对象.名称空间与作用域 结合体. # 直接传参 def func(x): print(x) func(1000) # 通过闭包函数传参 def outer(number): # number = 100 # inner就是闭包函数 def inner(): print(number) return inner func = outer(1000) # ---> inner地址 ---> f…