初始化说 __init__.py
背景理论
1. __init__.py用来标识所在目录是一个python的模块包(module package)
实际上,如果目录包含__init__.py文件,当导入该目录时,会执行__init__.py里面的代码
request
|__init__.py --> print('I from the __init__.py of request.')
|api.py --> def view(): pass工作目录request所在目录,进入交互模式 import
>>> import request
I from the __init__.py of request.2. __init__.py用来控制模块的导入,对外提供功能
有时项目目录比较深,可在__init__.py中导入,使用者直接从package顶层即可导入使用
控制模块导入,当import request注意时request所在目录为工作目录
# __init__.py 导入其他功能时,注意工作目录
from request.api import view
print('I from the __init__.py of request.')源码分析
warnings 用于提示用户一些错误或过时的用法,后续代码依然执行
chardet 对未知bytes的编码进行猜测,然后转换为str
urllib是Python官方连接的标准库
urllib3是第三方库,提供了原生urllib没有的特性,如连接池
requests库其实是对urllib3的再次封装,使用更加友好
check_compatibility和_check_cryptography实现思想可参考异常结构exceptions.py
项目结构

Last updated