Python知识点

面试可能会问到的问题:

**Q:**Python里面垃圾回收是怎样的
A:

python采用的是引用计数机制为主,标记-清除分代收集两种机制为辅的策略
引用计数–Python中一切即对象,对象有ob_refcnt属性。当一个对象有新的引用时,它的ob_refcnt就会增加,当引用它的对象被删除,它的ob_refcnt就会减少。当引用计数为0时,该对象生命就结束了。
优点:简单,实时性。缺点:计数消耗资源;循环引用导致内存泄漏。
“标记-清除”–为了解决循环引用的问题。寻找root object集合(该集合中的对象是不能被回收的)。将现在的内存链表一分为二,一条链表中维护root object集合,成为root链表,而另外一条链表中维护剩下的对象,成为unreachable链表。现在的unreachable可能存在被root链表中的对象,直接或间接引用的对象,这些对象是不能被回收的,一旦在标记的过程中,发现这样的对象,就将其从unreachable链表中移到root链表中;当完成标记后,unreachable链表中剩下的所有对象就是名副其实的垃圾对象了,接下来的垃圾回收只需限制在unreachable链表中即可。
分代回收–将系统中的所有内存块根据其存活时间划分为不同的集合,每一个集合就成为一个“代”,垃圾收集的频率随着“代”的存活时间的增大而减小。也就是说,活得越长的对象,就越不可能是垃圾,就应该减少对它的垃圾收集频率。

**Q:**Python多线程介绍,多线程可以使用多核吗;python多线程与协程联系和区别;
python的yield(yield以及协程是python的热门问题)
A:

不可以。全局解释锁GIL。只能通过多进程使用多核。
含yeild关键字的函数–生成器

**Q:**Python中range与xrange的区别
A:

python2.7中:
range是函数,xrange是一种类型
range返回一个列表
xrange返回一个xrange对象,该对象是可迭代的,可以通过next方法获取下一个元素。
ptyhon3.0中:将xrange改名为range

**Q:**python的unicode字符串与str联系区别;python文件编码与字符串编码
A:

    python 在内部使用两个字节来存储一个unicode。
    字符串前加 u 定义的是unicode字符串

    代码中有中文的时候,需要声明:# -*- coding: utf-8 -*-
    读文件-decode()--unicode--encode()-写文件

Q: python反转list
A:
a[::-1]

**Q:**cgi的了解(这个真不知道是啥分类里的)
A:

CGI(Common Gateway Interface),通用网关接口,它是一段程序,运行在服务器上如:HTTP服务器,提供同客户端HTML页面的接口。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值