python-2
面向对象
class 类名:
构造方法 def __init__(self,参数)
访问类属性 self.属性,self.__class__.属性
访问类方法 实例方法:普通,类方法:类名.方法,self 管实例,cls 管类,静态方法 “只管自己”
封装
访问修饰
命名约定,实现访问控制,属性,和方法同理
public:都可以访问,self.name,
protected:类子类(对象,不建议)self._age
private:自己可以访问,self.__secret,(对象._类名+属性 也可以,实际是被重命名:_类名+属性)
类内不需要定义属性,属性可以定义在__init__,和__slots__(__slots__ = ["name","age"] 只允许这两个属性) 方法内
属性控制
@property 将函数伪装成属性,只读
@属性.setter 写
继承
多继承,class 类名(父类1,父类2)优先子类,父类从左到右
不能继承私有属性和函数
super().函数名() 或者父类().函数名()
函数重写,同名即可
多态
没有interface,使用class类中定义方法,然后pass占位符即可
使用:def make_speak(obj): print(obj.speak())
异常
异常处理: try: except (as e 可选): else: (没有异常执行) finally:(无论是否反正异常都会执行)
抛出异常: reise 异常类型("异常描述")
断言: assert: 判断一个表达式 False时触发异常,用于调试 assert x==5, "x必须等于5"(没有话抛出AssertError)
自定义异常: class MyError(Exception): def __init__(self,value)
异常传递: 异常位置最近expect无法处理会一层一层向外传递
with关键字: 简化try except finally,语法:with exception as variable 下面代码块,可以省略finally中关闭资源代码
常见异常: Exception异常基类,自定义异常继承他,IndexError,KeyError,NameError,TypeError,AttributeException
模块
一个.py文件就是一个模块
命名规范: 模块名称区分大小写,小写字母+下划线,避免标准库重名
全部导入: import 模块名[as 别名] 使用时模块名或别名.方法或属性 不会导入_开头的
局部导入: from 模块名 import 成员名1[as 别名1], 成员名2[as 别名2]... 只导入部分方法或属性,使用时直接用
局部导入 from import *,导入所有不以单下划线开头的成员,直接使用
导入模块顺序: 1:当前目录,2:PYTHONPATH环境变量,3:包含标准python模块以及这些模块依赖的ext module目录
查看模块搜索顺序: import sys print(sys.path)
特殊函数: __all__ = ["public_func",""] 明确指定公开方法可以被导入
包
类比java 的包,但是包必须包含一个__init__.py的文件
导入包: 通模块类似,多级包用. 包或子包中导入特定模块,包或子包中特定模块导入特定成员
注: from 包 import * 时,不会导入包下所有模块
常用标准库
os | 多种操作系统接口。 |
sys | 系统相关的形参和函数。 |
time | 时间的访问和转换。 |
datetime | 提供了用于操作日期和时间的类。 |
math | 数学函数。 |
random | 生成伪随机数。 |
re | 正则表达式匹配操作。 |
json | JSON 编码器和解码器。 |
collections | 实现了一些专门化的容器,提供了对 Python 的通用内建容器 dict、list、set 和 tuple 的补充。 |
functools | 高阶函数,以及可调用对象上的操作 |
hashlib | 安全哈希与消息摘要。 |
urllib | URL 处理模块。 |
smtplib | SMTP 协议客户端,邮件处理。 |
zlib | 与 gzip 兼容的压缩。 |
gzip | 对 gzip 文件的支持。 |
bz2 | 对 bzip2 压缩算法的支持。 |
multiprocessing | 基于进程的并行。 |
threading | 基于线程的并行。 |
copy | 浅层及深层拷贝操作。 |
socket | 低层级的网络接口。 |
shutil | 提供了一系列对文件和文件集合的高阶操作,特别是提供了一些支持文件拷贝和删除的函数。 |
glob | Unix 风格的路径名模式扩展。 |
更多标准库可参考https://docs.python.org/zh-cn/3/library/index.html。
引入第三方库
使用pip命令
临时使用其他源 pip install -i http://mirrors.aliyun.com/pypi/simple/ 包名
永久修改源 pip config set global.index-url http://mirrors.aliyun.com/pypi/simple/
查看我们已经安装的软件包 pip list
安装 pip install 包 pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
卸载 pip uninstall 包

查看10道真题和解析