1.python是静态的还是动态的?是强类型还弱类型?
- python是强类型的动态脚本语言;
- 强类型:不允许不同类型相加
- 动态:不使用显示类型声明,且确定一个变量的类型是在第一次给它赋值的时候
- 脚本语言:一般也是解释性语言,运行代码只需要一个解释器,不需要编译
2.什么是鸭子类型?
- 1.面向对象的三大特性:继承、封装、多态
- 鸭子类型是多态的重要应用场景
- 这个概念的名字来源于由James Whitcomb Riley提出的鸭子测试,“鸭子测试”可以这样表述:“当看到一只鸟走起来像鸭子、游泳起来像鸭子、叫起来也像鸭子,那么这只鸟就可以被称为鸭子。
3.什么是python自省?
- 定义:Python自省是Python具备的一种能力,是程序员在使用面向对象的语言所写的程序在运行时能够获得对象的类型
- type(),判断对象类型
- dir(), 带参数时获得该对象的所有属性和方法;不带参数时,返回当前范围内的变量、方法和定义的类型列表
- isinstance(),判断对象是否是已知类型
- hasattr(),判断对象是否包含对应属性
- getattr(),获取对象属性
- setattr(), 设置对象属性
4.什么是monkey patch?哪些地方用到monkey patch?
- 所谓的monkey patch就是运行时替换
- 比如gevent库需要修改内置的socket:
from gevent import monkey;
monkey.patch_socket()
5.在Python程序的运行方面,有什么手段能够提升性能?
- 1.使用多进程,充分利用机器的多核性能
- 2.对于性能要求比较大的部分代码,可以使用C和C++进行编写
- 3.对于I/O阻塞引起的影响,可以通过I/O多路复用的来解决
- 4.尽量使用Python的内建函数
- 5.尽量使用局部变量