1.zip:接受任意多个(包括0个和1个)序列作为参数,返回一个tuple列表。
如:
a = [1,2]
b = [3,4]
c = dict(zip(a, b))
print c
结果:
{1: 3, 2: 4}
2.利用contextlib创建一个上下文管理器
from contextlib import contextmanager
@contextmanager
def file_open(path):
try:
f_obj = open(path,"w")
yield f_obj
except OSError:
print("We had an error!")
finally:
print("Closing file")
f_obj.close()
if __name__ == "__main__":
with file_open("test/test.txt") as fobj:
fobj.write("Testing context managers")
首先,执行到yield这句为止
在退出时,执行yield语句后面的语句部分
3.python weakref
有一个叫做弱引用的概念,如果每一个对象有存在着常规的引用,他是不会被垃圾收集器所销毁的。但是如果一个对象只剩下弱引用,那么它是会被垃圾收集器收回的
weakref模块具有的方法
1. class weakref.ref(object[, callback])
创建一个弱引用对象,object是被引用的对象,callback是回调函数(当被引用对象被删除时的,会调用改函数)。
2.weakref.proxy(object[, callback])
创建一个用弱引用实现的代理对象,参数同上。
3.weakref.getweakrefcount(object)
获取对象object关联的弱引用对象数
4.weakref.getweakrefs(object)
获取object关联的弱引用对象列表
5.class weakref.WeakKeyDictionary([dict])
创建key为弱引用对象的字典
6.class weakref.WeakValueDictionary([dict])
创建value为弱引用对象的字典
7.class weakref.WeakSet([elements])
创建成员为弱引用对象的集合对象