Python之with语句原理】的更多相关文章

我们看一个with处理文件操作的实例: with open('/etc/passwd') as f: for line in f: print(line) 这段代码的作用:打开一个文件,如果一切正常,把文件对象赋值给f,然后用迭代器遍历文件中每一行,当完成时,关闭文件: 而无论在这段代码的任何地方,如果发生异常,此时文件仍会被关闭. with看起来如此简单,但是其背后还有一些工作要做,因为你不能对Python的任意对象使用with语句,它仅能工作于支持上下文管理协议(context manage…
因为我的个人网站 restran.net 已经启用,博客园的内容已经不再更新.请访问我的个人网站获取这篇文章的最新内容,谈谈 Python 程序的运行原理 这篇文章准确说是『Python 源码剖析』的读书笔记,整理完之后才发现很长,那就将就看吧. 1. 简单的例子 先从一个简单的例子说起,包含了两个文件 foo.py 和 demo.py [foo.py] def add(a, b): return a + b [demo.py] import foo a = [1, 'python'] a =…
python 3 mysql 索引原理与慢查询优化 一 介绍 为何要有索引? 一般的应用系统,读写比例在10:1左右,而且插入操作和一般的更新操作很少出现性能问题,在生产环境中,我们遇到最多的,也是最容易出问题的,还是一些复杂的查询操作,因此对查询语句的优化显然是重中之重.说起加速查询,就不得不提到索引了. 什么是索引? 索引在MySQL中也叫做“键”,是存储引擎用于快速找到记录的一种数据结构.索引对于良好的性能 非常关键,尤其是当表中的数据量越来越大时,索引对于性能的影响愈发重要. 索引优化应…
生成器的使用 在 Python 中,如果一个函数定义的内部使用了 yield 关键字,那么在执行函数的时候返回的是一个生成器,而不是常规函数的返回值. 我们先来看一个常规函数的定义,下面的函数 f() 通过 return 语句返回 1,那么 print 打印的就是数字 1. def f(): return 1 print(f()) 如果我们将上面的 return 改成 yield,也就是下面这样 def f(): yield 1 yield 2 g = f() print(g) print(ne…
Python写红包的原理流程 首先来说说要用到的知识点,第一个要说的是扩展包random,random模块一般用来生成一个随机数 今天要用到ramdom中unifrom的方法用于生成一个指定范围的随机浮点数通过下面的图简单看下: 这里就打印了一个值范围是在10~20之间的浮点数. 在来说说lambda表达式是匿名函数,是函数的另一种表达方式,以下清晰了介绍了使用效果: t函数有3个值,返回3个数之和,f是lambda表达式,作用同样是返回三个数只和,def 类似 lambda,t类似f, (x,…
Python’s with statement provides a very convenient way of dealing with the situation where you have to do a setup and teardown to make something happen. A very good example for this is the situation where you want to gain a handler to a file, read da…
Python之with语句 在Python中,我们在打开文件的时候,为了代码的健壮性,通常要考虑一些异常情况,比如: try: ccfile = open('/path/data') content = ccfile.readlines() ccfile.close() except IOError: log.write('no data read\n') 我们将真正干活的代码扔到try语句块中,如果文件操作出现异常,则写一条错误日志: 考虑一种情况,如果文件打开成功,但readlines()调…
这一节,我们将学习Python的控制流语句,主要包括if.for.while.break.continue 和pass语句 1. If语句 if语句也许是我们最熟悉的语句.其使用方法如下: x=input("please input an integer:") if  x<0: print 'x<0' elif x==0: print 'x=0' elif x>0: print 'x>0' else: print ' x is not an number' 运行…
写过多线程程序的人肯定对各种锁很熟悉,尤其是下面这种代码 def lock_usage: lock.Lock() if(...) : lock.Unlock() return lock.Unlock() return 为了避免造成死锁,需要在每个return语句之前都释放锁.像上面的代码中,如果代码的执行路径很多,代码中就会包含大量的unlock语句,代码混乱还是小事儿,如果万一忘掉了unlock,就是个潜在的危险.除了锁之外,包括文件描述符的关闭等涉及到资源释放的操作都会有这种问题.为了解决内…
Python的if-elif-else语句用于多种条件判断后选择某个语句块执行.该语句可以利用一系列条件表达式进行检查,并在某个表达式为真的情况下执行相应的代码.需要注意的是,虽然if/elif/else语句的备选动作较多,但是有且只有一组动作被执行. def if_check(x): print("your sex : ", x) if x == "male" or x == "m" or x == "b": print(&…