day19

文件夹下具有______init______.py文件就是一个包

方法
  • import 包.包.包

  • from 包.包.包 import 模块

    需要在______init______.py做操作

路径
  • 绝对路径导入:从最外层的包开始导入
from ss.bake.api.policy import func
func()
  • 相对路径导入:从当前(.)开始导入或者父集(..)导入
from ..api.www import ww
ww()

注意点:

  • 使用相对路径必须在最外层包的同级进行导入
  • python2中import包,如果包没有______init______.py就报错
  • python3中import包,包里没有______init______.py不报错

logging

logging——日志

# import logging
# logging.debug('我是调试')
# logging.info('我是信息')
# logging.warning('我是警告')
# logging.error('我是错误')
# logging.critical('我是危险') # 默认是从warning开始记录 # import logging
# logging.basicConfig(level=logging.DEBUG,
# format='%(asctime)s %(filename)s [line:%(lineno)d] %(levelname)s %(message)s',
# datefmt='%Y-%m-%d %H:%M:%S',
# filename='test.log',
# filemode='w') # dic = {"key":123}
# logging.debug(dic) # num = 100
# logging.info(f"用户当前余额:{num - 50}") # try:
# num = int(input("请输入数字:"))
# except Exception as e:
# logging.warning("int将字符串转换报错了")
# print("12334") # logging.error('我是错误')
# logging.critical('我是危险')
标准格式
import logging
logger = logging.getLogger()
# 创建一个logger
fh = logging.FileHandler('test.log',mode="a",encoding='utf-8') # 文件
ch = logging.StreamHandler() # 屏幕
formatter = logging.Formatter('%(asctime)s - %(name)s - %(filename)s - [line:%(lineno)d] - %(levelname)s - %(message)s')
# 将屏幕和文件都是用以上格式
logger.setLevel(logging.DEBUG)
# 设置记录级别
fh.setFormatter(formatter)
# 使用自定义的格式化内容
ch.setFormatter(formatter)
logger.addHandler(fh) #logger对象可以添加多个fh和ch对象
logger.addHandler(ch) logger.debug('logger debug message')
logger.info('logger info message')
logger.warning('logger warning message')
logger.error('logger error message')
logger.critical('logger critical message')
05-11 15:24
查看更多