1、包的使用python
注意:在python2中,包必需要有一個__init__.py文件,而python3中即便是沒有也不會報錯編碼
首次導入包:1.以包下的__init__.py文件爲基準產生一個名稱空間debug
2.執行包下的__init__.py文件的代碼,將執行過程當中產生的名字都丟到名稱空間日誌
3.在當前執行文件中拿到一個名字,該名字就是指向__init__.py名稱空間orm
總結包使用的注意點:1.但凡是在導入語句中帶點的,點的左邊都必須是一個包對象
2.導入包就是導包下的__init__.py文件utf-8
3.若是使用絕對導入,絕對導入的起始位置都是以包的頂級目錄爲起始點字符串
4.可是包內部模塊的導入一般應該使用相對導入,用.表明當前所在文件,..表明上一級get
強調:1.相對導入只能在包內部的模塊之間互相導入使用it
2...上一級不能超出頂級包
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億')