python 基础知识学习

本文介绍了Python中的装饰器使用方法,展示了如何通过装饰器监控函数执行时间;讲解了如何正确传递参数给函数;演示了继承机制及属性访问过程;探讨了列表排序的不同实现方式;实现了基于lambda表达式的过滤操作;最后给出了快速排序算法的具体实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值