1、装饰器
def warp(x):
import time
def f(func):
def call_fun(*args,**kwargs):
start_time = time.time()
print 'func====',func,"args===",args,'kwargs===',kwargs
func(*args,**kwargs)
end_time = time.time()
if end_time - start_time>x:
print 'bad'
else:
print 'goods'
return call_fun
return f
@warp(3)
def ff(*args,**kwargs):
import time
print 'call func'
time.sleep(4)
说明:装饰器的调用原理类似如下:
warp(3)(ff)(*args,**kwargs)
if __name__ == "__main__":
ff("a","b")
2、传递参数
f(a,b,c="1",d="2",*args,**kwargs):
pass
f("a","b","c",c="dd")
f("a","b",c="dd","9")
3、继承
class A(object):
x= 1
class B(A):
pass
class C(A):
pass
print A.x,B.x,C.x
B.x = 2
print A.x,B.x,C.x
A.x = 3
print A.x,B.x,C.x
4、列表排序
l = [23,3,4,3,2,2,1,1,]
sorted(list_a,lambda x1,x2:x1<x2 and 1 or -1)
list_a.sort(lambda x,y:x<y and -1 or 1)
5、filter 找出索引为基数的数
Help on built-in function filter in module __builtin__:
filter(...)
filter(function or None, sequence) -> list, tuple, or string
Return those items of sequence for which function(item) is true. If
function is None, return the items that are true. If sequence is a tuple
or string, return the same type, else return a list.
<pre name="code" class="python">list_a = [12,213,22,2,2,2,22,2,2,32,]
[elem[1] for elem in filter(lambda x:x[0]%2!=0, zip(range(1,len(list_a)),list_a))]
6、快速排序
def quick_sort(sort_list,result):
if len(sort_list) ==1:
return sort_list
key_elem = sort_list.pop(0)
left_list = []
right_list = []
for e in sort_list:
if e>=key_elem:
right_list.append(e)
else:
left_list.append(e)
temp_result1 = []
temp_result2 = []
if left_list:
quick_sort(left_list,temp_result1)
if right_list:
quick_sort(right_list,temp_result2)
result.extend(temp_result1)
result.append(key_elem)
result.extend(temp_result2)
return result
if __name__ == "__main__":
result = []
quick_sort([1,3,9,8,7,6,5,3,2,1,0,-9,123],result)
print 'result============',result