python全栈脱产第18天
Posted zhouyi0316
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python全栈脱产第18天相关的知识,希望对你有一定的参考价值。
一、包的使用
注意:在python2中,包必须要有一个__init__.py文件,而python3中即使是没有也不会报错
首次导入包:1.以包下的__init__.py文件为基准产生一个名称空间
2.执行包下的__init__.py文件的代码,将执行过程中产生的名字都丢到名称空间
3.在当前执行文件中拿到一个名字,该名字就是指向__init__.py名称空间
总结包使用的注意点:1.但凡是在导入语句中带点的,点的左边都必须是一个包
2.导入包就是导包下的__init__.py文件
3.如果使用绝对导入,绝对导入的起始位置都是以包的顶级目录为起始点
4.但是包内部模块的导入通常应该使用相对导入,用.代表当前所在文件,..代表上一级
强调:1.相对导入只能在包内部的模块之间互相导入使用
2...上一级不能超出顶级包
二、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,
)
4.日志的级别:1.logging.debug() 2.logging.info() 3.logging.warning() 4.logging.error() 5.logging.critical()
优点:1.能够同时往终端与文件中记录日记 2.能够修改字符串编码
5.logger对象:负责生产各种级别的日志 logger1=logging.getLogger(‘用户交易‘)
6.fileter对象:过滤文件
7.handler对象:控制日志输出目标位置 fh1=logging.FileHandler(‘a1.log‘,encoding=‘utf-8‘) ch=logging.StreamHandler()
8.formmater对象 formatter1=logging.Formatter(fmt=‘%(asctime)s-%(name)s-%(levelname)s-%(module)s:%(message)s‘,datefmt=‘%Y-%m-%d %H:%M:%S %p‘)
9.绑定logger对象与handler对象 logger1.addHandler(fh1)
10.绑定handler对象与formatter对象 fh1.setFormatter(formatter1)
11.设置日志级别,有logger对象与handler对象两层关卡,必须都放行最终日志才会放行,通常两者级别相同 logger1.setLevel(10)
12.使用logger对象产生日志 logger1.info(‘alex给egon转账1亿‘)
以上是关于python全栈脱产第18天的主要内容,如果未能解决你的问题,请参考以下文章
python全栈脱产第37天------进程池与线程池协程gevent模块单线程下实现并发的套接字通信
python全栈脱产第34天------开启进程的两种方式join方法进程对象其他相关的属性和方法僵尸进程孤儿进程守护进程互斥锁