Python八股文总结

解释型语言和编译型语言的区别

解释型语言:编译一行,执行一行,如python
编译型语言:全部代码转换成二进制程序后执行,如java

生成器和迭代器

生成器可以理解成就是迭代器,是有yield关键字的函数,使用iter()和next()获取yield返回对象,还可以使用类似(i for i in a)方法获取。这样做的目的主要是为了节约内存。

闭包

外部函数中定义一个内部函数,内部函数引用外部函数中的变量,外部函数的返回值是内部函数;

应用场景:修饰器

匿名函数

lambda函数的目的是精简代码量。一行代码实现一个功能

python2和python3区别

python2的/运算返回的是整型,python3返回类型是浮点型
python2用的是xrange,python3用的是range。xrange返回列表,range返回生成器
python2默认编码类型是ASCII,python3默认编码类型是unicode
python2print是class python3 print需要带括号

GIL锁

GIL锁是为了实现线程同步,保证当前进程中只有一个线程在执行。

__new__和__init__区别

__new__的参数是cls,__init__的参数是self
__init__是创建对象的时候默认调用
__new__有返回值 __init__无返回值

单例模式和工厂模式

单例模式:一个类只能实例化一次对象
工厂模式:根据业务需求生成不同类

值传递和引用传递

不可变对象是值传递,可变对象类型是引用传递

断言

若断言为真,则不做任何操作;否则抛出assertionerror

内存泄漏

分配内存时,由于设计缺陷,失去了对这块内存的控制,造成内存浪费。
少用del()

修饰器

在不改变代码的情况下为函数扩展功能,主要应用于日志,参数校验,权限校验。
把当前函数的内部函数以返回值的形式返回

深浅拷贝

浅拷贝:仅拷贝外部值,当被拷贝对象内部值发生改变时,浅拷贝对象内部元素不变。
深拷贝:开辟一个新的内存地址,拷贝所有引用。

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值