python面试总结1(基础章节)
python语言基础
-
语言特点
python是静态还是动态类型?是强类型还是弱类型
- 动态强类型语言
- 动态还是静态指的是编译期还是运作期确定类型
- 强类型指的是不会发生隐式类型转换
python作为后端语言优缺点
- 胶水语言,轮子多,应用广泛
- 语言灵活,生产力高
- 性能问题、代码维护问题、pythn2/3兼容问题
什么是鸭子类型
- 关注点在对象的行为,而不是类型
- 比如 file,StringIo,socket对象都支持read/write方法
- 再比如定义了__iter__魔术方法的对象可以用for迭代
什么是monkey path
- 所谓monkey patch就是运行时替换
- 比如gevent库需要修改内置的socket
- from event import monkey; monkey.patch_socket()
什么是自省?
- 运行时判断一个对象的类型的能力
- python一切皆对象,用type,id,isinstance获取对象类型信息
- Inspect模块提供了更多获取对象信息的函数
python之蝉
-
编写关于python编程的准则
-
import this
-
编程拿不准的时候可以参考
import this
-
语法基础
-
高级特性
讲讲你觉得最有技术含量的项目???
python2/3差异
python3改进
-
print成为函数 ,python2是关键字
-
编码问题。python3不在有unicode对象,默认str就是unicode
#python2 s = u'中文' type(s) unicode "操作的时候使用画unicode" #python3 s = '中文' type(s) "保存的时候使用str" str
-
除法变化
python2 5/2 = 2 python3 5/2 = 2.5 5//2 = 2
-
python3类型注解
-
优化super()方便直接调用父类函数
#python2 super(C,self) #python3 super()
-
高级解包操作。 a,b, *rest = range(10)
-
keyword only 限定关键字参数
-
python3重新抛出异常不会丢失栈信息
-
一切返回迭代器(ran ge,zip,map,dict,values)
python3新增
- yield from 链接子生成器
- asyncio内置库,async/await原生协程
- 新的内置库 enum,mock,asyncio
python3改进
- 生成的pyc文件统一放到_pycache_
- 一些内置库的修改。urllib,selector
- 性能优化
python2/3工具
熟悉一些兼容2/3的工具
- six模块
- 2to3等工具转换代码
- future