help()dir()type()id()引用对象的idhasattr()和getattr()分别判断对象是否有某个属性及获得某个属性值。callable()判断对象是否可以被调用。isinstance()可以确认某个变量是否有某种类型。
pop(i) ,返回并删除第i个元素,默认为最后一个reverse() , 反转序列extend(L) 等同于+=index(x) 返回第一次出现x的位置,没有就报错。count(x) 出现x的次数sort() 排序len(list) 长度del list(i) 删除第i+1个变量
1.map
def foo(x, y): return x*ymap(foo, range(10), range(10))传入的值为(0,0),(1,1),(2,2)...(9,9) ,不足部分None。
def foo(x): return x>10filter(foo,range(20)) --> 11,12...19传入的方法是过滤条件,返回真才有效,如果foo为None,则返回第二个参数中所有的真值
foo(perm,x)reduce(foo,range(10),1) 第三个参数是perm的初始值,不传为第二个参数的第一个值
l=range(12) print [x*y if x>10 else x+y for x in l if x>9 for y in l if y>9]
os.path.split
|
拆分路径,返回一个 tuple,
第一个元素是文件所在路径,
第二个元素是对应文件名。
|
"/one/two/three" : "('/one/two', 'three')" "/one/two/three/" : "('/one/two/three', '')" "/" : "('/', '')" "." : "('', '.')"
"" : "('', '')"
|
os.path.basename
|
获取某路径对应的文件名。
|
"/one/two/three" : "three" "/one/two/three/" : "" "/" : "" "." : "."
"" : ""
|
os.path.dirname | 只获取某路径对应的路径, 不含文件名 |
"/one/two/three" : "/one/two"
"/one/two/three/" : "/one/two/three"
"/" : "/"
"." : ""
"" : ""
|
os.path.splitext | 将路径、文件名、扩展名分开, 并以一个tuple的形式返回 |
"filename.txt" : ('filename', '.txt')
"filename" : ('filename', '')
"/path/to/filename.txt" : ('/path/to/filename', '.txt')
"/" : ('/', '')
"" : ('', '')
|
os.path.commonprefix |
在一组路径中,
找到一个共同的前缀
|
['/one/two/three/four',
'/one/two/threefold',
'/one/two/three/']
/one/two/three
|
os.path.join |
组合一些零散的字符串,
生成一个安全的路径表示
拼接从/ 开始的
|
('one', 'two', 'three') : one/two/three
('/', 'one', 'two', 'three') : /one/two/three
('/one', '/two', '/three') : /three
|
os.path.expanduser | 寻找用户的home目录 |
~ : /home/shengyan
~root : /root
~mysql : /var/lib/mysql
|
os.path.normpath | 处理不规则路径字符串, 将其转化为正常的路径。 |
one//two//three : one/two/three
one/./two/./three : one/two/three
one/../one/two/three : one/two/three
|
os.path.abspath | 将相对路径转换为绝对路径 |
"." : "/home/shengyan/LovelyPython/PCS/pcs-200"
".." : "/home/shengyan/LovelyPython/PCS"
|
cmd
|
命令行接口
|
|
chardet
|
字符编码自动检测模块
|
|
epydoc
|
从源码注释中生成各种格式文档的工具
|
|
ConfigParser | 处理ini 格式的配置文件 |
enumerate | 遍历中同时需要序号 | for index,obj in enumerate(olist) |
map | 组合 | map(lambda x:x*2,[1,2,3,4,5]) -> [2, 4, 6, 8, 10] |
filter | 过滤 | filter(lambda x:x>3,[1,2,3,4,5]) -> [4, 5] |
zip | 同时循环两个一样长的数组 | for x,y in zip([1,2,3],[4,5,6]): |
dir | 一个变量的所有方法和属性 | print dir(s) |
reduce | 叠加运算 |
mutex = threading.Lock() #被定义为全局使用,否则可传入fun mutex.acquire() mutex.release() t = threading.Thread(target=fun, args=(10,)) t.start() t.join() #等待 threading.currentThread().getName()
class Test(threading.Thread): def __init__(self, num): threading.Thread.__init__(self) def run(self): globalmutex mutex.acquire() print 100 mutex.release()
1. 现有的程序无法运行,此时应该是重写程序,而不是重构。2. 程序到了最后的交付期限。