python開發規範和包
阿新 • • 發佈:2019-02-12
time abs 文件夾 port __main__ .get read os.path config
相對路徑: 在包的內部文件中找其他包的文件:
1.在啟動文件中先找到一個內部文件
2.在這個內部文件中用from ..包名 import 內部文件名
. 當前路徑
.. 父級路徑
實例:
bao的外部,一個啟動文件:包
定義一個大包:bao,在bao下設立foo,get,test包,foo下面加host文件,get下面加get_bao文件
在host文件中調用get_bao
開發規範是開發要遵守的協議標準,它能快速查找,查看方便,便於修改;軟件開發的首要規範就是從設計目錄結構開始。
首先在目錄文件中,要有如下幾個目錄文件:
1.bin,存放啟動文件
開啟項目的start文件。
import sys,os
from core import src
BASE_DIR=os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.append(BASE_DIR)
if __name__ == ‘__main__‘:
src.run()
2.config,配置文件,存放settings文件
存放項目中的一些路徑和信息
import os
BASE_DIR=os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
DB_PATH=os.path.join(BASE_DIR,‘db‘,‘db.json‘)
3.core,主邏輯,存放src文件
主邏輯部分
from conf import settings
from lib import common
import time
4.db,數據文件,存放項目相關的數據文件
5.lib,公共組件,存放common文件
6.log,日誌項,存放logger文件
7.README,項目說明書
包
一個文件夾下有__init__.py文件,就是包,py2中,沒有__init__就報錯,__init__強制報錯,py3中,__init__沒有也可以,可以快速分辨
使用包的前提:必須在包的外面使用包
import bao
from bao import *
導入包使用*,是在__init__中控制
導入模塊使用*,是在本模塊中控制
導包就是導包下面的__init__文件,
使用包的時候,後面不能再出現‘.‘
from和import中間可以出現‘.‘
__all__ = [‘‘],在__init__裏中控制包中要導入的模塊,模塊中要導入的功能
絕對路徑: 從包的外部往內部找
相對路徑: 在包的內部文件中找其他包的文件:
1.在啟動文件中先找到一個內部文件
2.在這個內部文件中用from ..包名 import 內部文件名
. 當前路徑
.. 父級路徑
實例:
bao的外部,一個啟動文件:包
定義一個大包:bao,在bao下設立foo,get,test包,foo下面加host文件,get下面加get_bao文件
在host文件中調用get_bao
先執行包,找到host文件
from bao.foo import host
host找get_bao
from ..get import get_bao
在文件內部用絕對路徑:
from bao.get import get_bao
將啟動文件放到bao內:
import sys
啟動文件在哪兒,就把當前文件的路徑添加到環境變量中
當host文件為啟動文件時,要把最上層包的路徑添加進去
sys.path.insert(0,r‘最上層包的路徑‘)
from get import get_bao
如果用包,就寫一個run文件:
把run文件和包的總目錄放在同級,
盡量不要在包的內部調用,sys.path會隨著文件的不同而改變
python開發規範和包