包与模块

什么是包:包就是一个文件夹,一个有__init__模块的文件夹。

     产生一个包的三件事:

1 产生一个包的名称空间
2 执行包下的__init__.py文件,将产生的名字存放于包的名称空间中
3 在当前执行文件中拿到一个名字aaa,该名字指向包的名称空间
所以说包其实也是一个模块,也是几个模块的集合体

包的使用:
包也是模块,所以也可以被导入
1,import...导入,与模块的导入一样,只能导入同级别文件路径下的模块
2,form...import...导入,与模块的导入一样,指名道姓的导入,但是区别时import后面不能带点,否则会报语法错误
注意: 包与模块都是用来被导入的,不会作为脚本直接执行,所以导入模块时sys.path的路径必须以当前执行文件为准
在导入模块时,带.的左边必须时包,导入后使用就没有这种限制了,可以是任意类型。

相对导入跟绝对导入
绝对导入:就是以执行文件的文件头导入
相对导入:用.或者..的方式为起始,但是只能用在包内,不能用在不同文件夹,一个.代表该路径的前一个路径。


模块补充
时间模块:import time
时间分为三种形式
1、时间戳
print(time.time())
start_time=time.time()
time.sleep(3)
stop_time=time.time()
print(stop_time-start_time)


2、格式化的字符串
print(time.strftime('%Y-%m-%d %H:%M:%S %p'))
print(time.strftime('%Y-%m-%d %X %p'))

3、struct_time对象
print(time.localtime()) # 上海:东八区
print(time.localtime().tm_year)
print(time.localtime().tm_mday)

print(time.gmtime()) # UTC时区



random模块

用来写验证码的
模版:
import random

def make_code(n=5): #指定字符个数
res=''
for i in range(n):
s1=str(random.randint(0,9)) #任意0到9的数字
s2=chr(random.randint(65,90)) #任意26位字母
res+=random.choice([s1,s2]) #数字与字母的拼接
return res

print(make_code(10)) 打印十位数字与字母的组合
posted @ 2018-04-08 20:05  鲁之敬  阅读(68)  评论(0编辑  收藏  举报