python

作者: DuffyMagic | 来源:发表于2019-04-11 13:21 被阅读0次

    1、 *args 和 **kwargs
    *args主要是用来对tuple型参数打包或解包,对应的是函数的位置参数。而**kwargs则是主要用来对dict型参数,对应的是函数的关键字参数。

    def function(x, y, *args):
        print(x, y, args)
    function(1, 2, 3, 4, 5)
    结果:1,2,(3,4,5)
    
    def function(**kwargs):
        print( kwargs)
    function(a=2)
    结果:{'a':2}
    

    2、rlock lock的区别
    rlock是可重入锁,因为同步锁用lock时会产生迭代死锁、相互调用死锁,rlock可避免迭代死锁
    相互调用死锁可加入timeout来释放锁
    3、join()的含义
    多线程运行,增加join后,主线程完成后进入阻塞状态,直到子线程运行结束,主线程才会结束
    不加入join,主线程执行完后就会结束,剩下子线程自己运行
    如果是守护线程,主线程执行完就会关闭程序,不会等子线程运行
    守护线程大于join,主线程运行完等待timeout直接结束
    4、xrange、range区别
    range返回的是一个list对象,而xrange返回的是一个生成器对象(xrange object)
    xrange则不会直接生成一个list,而是每次调用返回其中的一个值,内存空间使用极少,因而性能非常好
    5、is ==区别
    is比较的是地址,==比较的是值
    6、垃圾回收机制
    引用计数:每个对象都有计数的对象,有新的引用时+1,引用它的对象被删除时-1,为0时被释放
    标记——清除:当没有空闲的内存时,从寄存器和程序栈出发遍历标记,没有被标记的被释放
    分代技术:将内存块分区,存货的时间月茶女,被释放的概率越小
    7、闭包
    8、协程
    9、迭代器
    生成器——一遍循环一遍计算的机制,迭代器的一种
    10、python的重载
    可变参数类型——python参数不分个数
    可变参数个数——缺省参数*arg **arg

    相关文章

      网友评论

          本文标题:python

          本文链接:https://www.haomeiwen.com/subject/swrtwqtx.html