包的使用和logging模块

logging模块

1. 控制日志级别
2. 控制日志格式
3. 控制输出的目标为文件
logging.basicConfig(filename='access.log',
format='%(asctime)s - %(name)s - %(levelname)s -%(module)s: %(message)s',
datefmt='%Y-%m-%d %H:%M:%S %p',
level=10,
)

logging.debug('debug日志') # 10
logging.info('info日志') # 20
logging.warning('warning日志') #30
logging.error('error日志')#40
logging.critical('critical日志') #50


注意:
在python2中,包下必须有一个__init__.py文件,而python3中即便是没有也不会报错

首次导入包,发送三件事,
1. 以包下的__init_.py文件为基准来产生一个名称空间
2. 执行包下的__init_.py文件的代码,将执行过程中产生的名字都丢到名称空间中
3. 在当前执行文件中拿到一个名字p1,该p1就是指向__init__.py名称空间的

总结包的使用无非注意三点:
1. 但凡是在导入语句中带点的,点的左边都必须是一个包
2. 导入包就是在导包下的__init__.py文件
3. 如果使用绝对导入,绝对导入的起始位置都是以包的顶级目录为起始点
4. 但是包内部模块的导入通常应该使用相对导入,用.代表当前所在的文件(而非执行文件),..代表上一级
强调:
1. 相对导入只能包内部的模块之间互相导入使用
# 2. ..上一级不能超出顶级包

导入模块其实就是在导入包下的__init__.py文件

猜你喜欢

转载自www.cnblogs.com/liangchengyang/p/9456842.html