1. 模块的概念
作为一名合格的程序员,我们编写的代码不可能都放在一个Python文件中,有时候我们开发的项目比较复杂时,编写的代码可能要上万行,甚至更多,如果全部都放在一个文件里,显然是不合理的。
不同的文件中的代码含义不同,功能也不同,最后整个项目的运行都离不开它们,在Python中,一个文件就是一个模块(module)。
2. 模块的使用
如果我们要从1个模块里导入多个标识符,可以这样
from aa import func1,var1,func2,var2
如果我们要导入1个模块里面的很多个标识符,可以使用*代表所有可导入的标识符(包括变量名,函数名等)
from aa import *
如果我们需要从两个模块导入函数,恰好这两个函数是同名的,这是我们可以给其中一个起个别名,避免冲突,比如
from save import savetofile
from save2 import savetofile as savetofile2
3. 模块之间的调用
当我们的项目模块文件特别多的时候,我们还需要将这些模块文件根据功能划分到不同的目录中。
这些放模块文件的目录,Python中把他们称之为 包 (Package) 。
在 Python 3.3 以前的版本,包目录里面需要有一个名字为 init.py 的初始化文件,有了它,Python才认为这是一个Python包。
通常,这个初始化文件里面不需要什么代码,一个空文件就可以了。当然你也可以在里面加入代码,当这个包里面的模块被导入的时候,这些代码就会执行。Python 3.3 以后版本的解释器, 如果目录只是用来存放模块文件,就不需要一个空的 init.py 了。但是 init.py 可以作为包的初始化文件,里面放入一些初始化代码,有独特的作用
import stock.food.beef
stock.food.beef.stockleft()
或者
from stock.food.beef import stockleft
stockleft()
4. 库的概念
如果你写的 模块文件 里面的函数, 实现了通用的功能,经常被其它模块所调用, 我们就可以把这些被调用的模块文件称之为 库
库是个抽象的概念,只要 某个模块 或者 一组模块 , 开发它们的目的 就是给 其它模块调用的,就可以称之为库。
5. 库的类型
这些标准库里面 有一部分叫做 内置类型 built-in types) 和 内置函数 (built-in functions) 。内置类型 和 内置函数 无须使用import导入,可以直接使用。
内置类型: int、float、str、list、tuple等
内置函数: print,type,len 等等
还有些标准库,需要使用import导入,才能使用。常见有 sys, os, time, datetime, json,random 等
比如,我们要得到字符串形式的当前日期和时间,可以使用datetime库
import datetime
# 返回这样的格式 ‘20160423’
datetime.date.today().strftime("%Y%m%d")
# 返回这样的格式 ‘20160423 19:37:36’
datetime.datetime.now().strftime("%Y%m%d %H:%M:%S")
# 在 数字 1 到 8 之间(包括1和8本身),随机取出一个数字
from random import randint
num = randint(1,8)
print(num)