1.包和模块
1.1包(lib)
python里面的包是指一个文件夹,一般包含init.py文件,y一个包里面可以同时包含多个py文件。
1.2模块(module)
python里面模块是指一个写有python代码,用于完成某项功能的文件,一个模块可以看成独立的文件,一个文件也可以看成一个模块。
1.3模块的引入
比如创建一个包mypackage,包文件夹下创建两个自定义模块test1、test2以及init.py和用于测试的demo01文件。
1.3.1第一种引入
import + 包路径文件名称
我们可以在demo01文件里这样引用,如import mypackage.test1
,import mypackage.test2
1.3.2第二种引入
from +包路径+import+模块名称
如from mypackage import test1
,from mypackage import test2
1.3.3第三种引入
from +包路径+import * 引入该包下面的所有模块,首先要创建一个--init--文件,在文件里写入__all__=["test1","test2"]
,然后通过from mypackage import *
来引入当前包路径下的所有模块。
2. ==和is的使用
“==”比较的是两个对象的数值是否相等,“is”比较的是两个对象是否指向同一个内存(id是否相等)
声明了一个变量a=10,b=10,判断两个对象的值是否相等以及是否指向同一个内存
3.拷贝(copy)
Python中,对象的赋值都是进行对象引用(内存地址)传递。
python内置了copy模块,通过import copy
即可。
所谓拷贝,就是创建一个新对象,拷贝出来的对象与原对象没有任何关联(id地址发生了变化)。
3.1深拷贝
深拷贝(copy.deepcopy())是创建一个新对象,递归copy原对象的所有子对象,然后与原对象断开联系,当原对象的子对象发生变化时,深拷贝的对象不会发生变化。
3.2浅拷贝
浅拷贝是创建一个新对象,copy原对象的所有子对象,然后与原对象断开联系,当原对象的子对象发生变化时,浅拷贝的对象随之发生变化(共享子对象)。