Python模块与包的概念

模块:
随着程序的发展,功能越来越多,为了方便管理,我们通常将程序分成一个个的文件,这样做程序的结构更清晰,方便管理。这时我们不仅仅可以把这些文件当做脚本去执行,还可以把他们当做模块来导入到其他的模块中,实现了功能的重复利用
import:
1. 执行对应文件
2. 引入变量名
为了防止 多次重复导入,python的优化手段是:
第一次导入后就将模块名加载到内存了,后续的import仅仅是增加引用,而不是重置模块

导入模块有独立的名称, 不会与当前函数的全局变量冲突

为 模块起别名的方式 : import time as tim print(tim.time) from time import time as hello

可一行导入多个模块 import sys,os,re from spam import read1,read2,money

form... import 与 import 对比
from... import... 使用更方便 缺点是 易与 当前执行文件中的名字冲突


sys.path从以下位置初始化 临时修改作用 (永久修改用 系统 环境变量修改 )
1. 执行文件所在的目录
2. PYTHONPATH(包含一系列目录名,与shell变量PATH语法一样)
3. 依赖安装时默认制定
4.BASEDIR利用__file__文件 找到当前文件目录 通过 os.path.abspath(__file__)
找到文件的绝对路径目录 上上级为os.path.dirname(os.path.dirname(__file__))

需要强调的是:我们自定义的模块名不要跟python标准库的模块名重复


1.模块名区分大小写,foo.py与FOO.py代表的是两个模块
2.你可以使用-O或者-OO转换python命令来减少编译模块的大小
-O转换会帮你去掉assert语句
-OO转换会帮你去掉assert语句和__doc__文档字符串
由于一些程序可能依赖于assert语句或文档字符串,你应该在在确认需要
的情况下使用这些选项。
3.在速度上从.pyc文件中读指令来执行不会比从.py文件中读指令执行更快,只有在模块被加载时,.pyc文件才是更快的

4.只有使用import语句是才将文件自动编译为.pyc文件,在命令行或标准输入中指定运行脚本则不会生成这类文件,因而我 们可以使用compieall模块为一个目录中的所有模块创建.pyc文件



用来组织模块功能清晰 进行分别存放

random模块
  random.random() 0-1的浮点数
  random.randint(1,3) 取 1-3之间的整形 [1,3]
  random.randrange(1,3) [1,3)
  random.choice(可迭代对象,2) 在其中随机取值 第二个参数 设置选取几个参数
  l = [1,2,3,4,5,6]
  random.shuffle(l)
  打乱顺序用 shuffle

纵有疾风起,人生不言弃!
原文地址:https://www.cnblogs.com/poetl/p/8337893.html