1.idea文件夹是干什么用的?
你使用pycharm作为你的python编辑器的时候,你创建一个代码文件夹就会自动生成这个.idea文件夹。
这个文件夹的主要作用在于存放项目的控制信息,包括版本信息,历史记录等等。
2.idea文件夹可以删除吗?
删除它是不会影响代码的正常使用的,但是如果删除就不能使用pycharm进行回溯和复原了。
3.python的模块、包、库的区别
模块
一个模块可以被其他.py文件导入使用,也可以单独作为脚本文件运行。
一个.py文件就是一个模块,比如abc.py就叫abc模块,xyz.py就叫xyz模块。
好处:使用模块可以大大提高代码的可维护性
可以被其他py文件引用,提高文件可复用性
还可以避免函数名和变量名冲突,相同的函数名和变量名可以分别存在不用的模块中
注意:创建模块时不能与python自带的模块名冲突,如sys.py,会导致无法导入系统sys模块
包
为了避免不同人编写的模块名相同冲突,python引入了按目录来组织模块的方法,称为包(Package)
假如我们的abc模块和xyz模块与其他模块冲突了,于是我们可以通过包来组织模块,避免冲突。方法是来选择一个顶层包名,比如mycompany,按照如下目录存放:
mycompany
├── __init__.py
├── abc.py
└── xyz.py
引入包以后,只要顶层包名不与别人冲突,那所有模块都不会与别人冲突。现在,abc.py模块的名字就变成了mycompany.abc, xyz.py模块的名字就变成了mycompany.xyz。
每个包目录下都会有一个__init__.py的文件,这个文件是必须存在的,否则,python就把这个目录当成普通目录,而不是一个包。__init__.py可以是空文件,也可以有python代码,因为__init__.py本身就是一个模块,它的模块名就是mycompany。
类似的,可以有多级目录,组成多级层次的包结构。比如如下目录结构:
mycompany
├── web
├ ├── __init__.py
├ ├── utils.py
├ └── www.py
├── __init__.py
├── abc.py
└── xyz.py
web就叫子包,子包下面还可以嵌套子包。
文件www.py的模块名就是mycompany.web.www。
库
具有相关功能模块的集合。
标准库
下载安装的python解释器自带的模块
第三方库
由第三方机构编写并发布的具有特定功能的模块。
Python标准库、模块、包的本质都是模块或者模块的组合。
end9 = time.perf_counter()
python多线程
并行与并发的区别
并发:宏观上,多个任务同时执行;
一个CPU核心交替运行多个程序
并行:同一时刻发生;
多个CPU核心同时处理多个程序
一个程序运行起来后,一定有一个执行代码的东西,这个东西就是线程;
一般计算(CPU)密集型任务适合多进程,IO密集型任务适合多线程;
一个进程可拥有多个并行的(concurrent)线程,当中每一个线程,共享当前进程的资源