1.动态语言 sys.getrefcount()    //查看对象的引用计数 增加对象的引用计数场景 对象创建时:以赋值的方式,创建变量名的同时就会创建变量 将对象添加进容器时:类似list.append() 当对象被当作参数传递给函数时 多重目标赋值时:s1 = s2 = s3 = 'abc' 为对象创建另外的变量名 减少引用计数 引用此对象的某变量名被显示销毁:del x 引用此对象的某变量名重新赋值 从容器中移除对象时,类似list.pop() 容器本身被销毁 if if boolean…
一 迭代的概念 迭代是Python最强大的功能之一,是访问集合元素的一种方式. 迭代器是一个可以记住遍历的位置的对象. 迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束.迭代器只能往前不会后退. 迭代器有两个基本的方法:iter() 和 next(). 迭代器协议: 迭代器协议是指:对象必须提供一个next()方法,执行该方法要么返回带代中的下一项,要么引起一个Stoplteration异常,以终止迭代(只能往后走,不能往前退): 可迭代对象:实现了迭代器协议的对象(如何实现:对…
一.装饰器 一.装饰器的知识储备 1.可变长参数  :*args和**kwargs def index(name,age): print(name,age) def wrapper(*args,**kwargs): #即args=(1,2,3,4,5),kwargs={'x':1,'y':3} index(*args,**kwargs) #index(1,2,3,4,5,y=2,x=5) 2.函数对象:被当做数据传递 1.函数可以当做参数传给另外一个函数 2.一个函数的返回值,也可以是一个函数(…
一,什么是生成器 可以理解为一种数据类型,这种数据类型自动实现了迭代器协议(其他数据类型需要调用自己内置的__iter__方法),所以生成器是可迭代对象. 二,生成器分类在python中的表现形式 1,生成器函数:常规函数定义,但是,使用yield语句而不是return语句返回结果.yield语句一次返回一个结果,在每个结果中间,挂起函数状态,以便下次从它离开的地方继续执行day18-5.py def test(): yield 1 yield 2 g=test() print(g) print…
一.三元表达式 三元运算,是对简单的条件语句的缩写.   # if条件语句 if x > f: print(x) else: print(y) # 条件成立左边,不成立右边 x if x > y else y # 三元表达式   python的三元运算格式如下: result=值1 if x<y else 值2 # 如果条件成立,那么将“值1”赋值给result变量,否则,将“值2”赋值给result变量   二.列表解析 列表解析:用三元表达式,将结果写入列表,即为列表解析      …
一.装饰器 一.装饰器的知识储备 不想修改函数的调用方式,但是还想在原来的函数前后添加功能 1.可变长参数  :*args和**kwargs def index(name,age): print(name,age) def wrapper(*args,**kwargs): #即args=(1,2,3,4,5),kwargs={'x':1,'y':3} index(*args,**kwargs) #index(1,2,3,4,5,y=2,x=5) 2.函数对象:被当做数据传递 1.函数可以当做参数…
一:列表解析 列表解析(List comprehensions)来自函数式编程语言Haskell .它可以用来动态地创建列表.它在 Python 2.0 中被加入. 列表解析的语法:     [expr for iter_var in iterable] 这个语句的核心是 for 循环,它迭代 iterable 对象的所有条目.前边的 expr 应用于序列的每个成员,最后的结果值是该表达式产生的列表. 比如一个计算序列成员的平方的 lambda 函数表达式: >>> map(lambda…
[转]Python之列表生成式.生成器.可迭代对象与迭代器 本节内容 语法糖的概念 列表生成式 生成器(Generator) 可迭代对象(Iterable) 迭代器(Iterator) Iterable.Iterator与Generator之间的关系 一.语法糖的概念 “语法糖”,从字面上看应该是一种语法.“糖”,可以理解为简单.简洁.其实我们也已经意识到,没有这些被称为“语法糖”的语法,我们也能实现相应的功能,而 “语法糖”使我们可以更加简洁.快速的实现这些功能. 只是Python解释器会把这…
Python中的列表解析和生成器表达式 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.列表解析案例 #!/usr/bin/env python #_*_coding:utf-8_*_ #@author :yinzhengjie #blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/ #EMAIL:y…
一.语法糖的概念 “糖”,可以理解为简单.简洁,“语法糖”使我们可以更加简洁.快速的实现这些功能. 只是Python解释器会把这些特定格式的语法翻译成原本那样复杂的代码逻辑 我们使用的语法糖有: if...else 三元表达式: 可以简化分支判断语句,如 x = y.lower() if isinstance(y, str) else y with语句: 用于文件操作时,可以帮我们自动关闭文件对象,使代码变得简洁: 装饰器: 可以在不改变函数代码及函数调用方式的前提下,为函数增加增强性功能: 列…