day23今日內容概要:
1.絕對匯入與相對匯入
2.包的概念(package)
3.模塊化編程思想簡介
4.軟體開發目錄規范
5.常見內置函式:collections和time
6.作業(將員工管理系統用模塊化編程,結合軟體開發目錄規范來封裝)
今日內容詳解
1.絕對匯入和相對匯入
PS:只要存在import匯入模塊的操作,那么sys.path(程式系統環境變數)永遠以當前執行檔案的根目錄為參考路徑,
1.1.絕對匯入:
句式:from 檔案夾名 import py檔案名
分析:這里的檔案夾必須包含在當前執行檔案的根目錄下,可單層也可多層,
具體多少層路徑需要在from后面采用 ad1.ad2.ad3 的形式注明
1.2.相對匯入:
句式:from . import py檔案名 或者是 from .. import py檔案名
拓展知識:單句點符. 表示當前檔案路徑
雙句點符.. 表示當前路徑的上一層路徑
../.. 表示上上層
分析:所以from . import py檔案名 表示從關鍵字import所在的檔案根目錄下匯入一個py檔案,
from .. import py檔案名 表示從當前檔案根目錄的上一層匯入一個py檔案
總結:相對匯入依賴于關鍵字import所在的那個檔案根目錄路徑,適合用來模塊之間匯入(前提是模塊與模塊在同一個根目錄下),但是當模塊比較多的時候還是容易找不到模塊而報錯,
而絕對匯入依賴于當前執行檔案的根目錄路徑,更不容易出現找不到模塊而報錯的情況,更加推薦使用絕對匯入的方法來匯入模塊,
2.包的概念(package)
概念:“包”實際上就是檔案夾,只是在檔案夾里面多了一個__init__.py檔案,而在這個__init__.py檔案里面你可以配置這個檔案夾里面哪些模塊可以被呼叫,實際上在Python3里面對包和檔案夾的區別已經不大了,
3.模塊化編程簡介
概念:類似前期將一段具有特定功能的代碼封裝成一個函式,需要的時候直接呼叫;而模塊化編程就是將更多的代碼或者定義好的函式、變數....封裝成一個模塊,當需要使用模塊里面的功能時,直接匯入這個模塊即可,
4.軟體開發目錄規范
目的:為了方便代碼的管理,專案的維護,除錯等,將具有特定功能的檔案(.py .TXT .log)分類放進一個指定的檔案夾內
4.1規范的目錄框架:
bin ->start.py 存放啟動檔案
configure ->setting.py 存放組態檔
core -> src.py 存放專案的核心邏輯代碼檔案
library -> common.py 存放各模塊之間通用的檔案
database -> user_data.txt 存放專案的資料庫檔案
interface -> order.py 存放專案的拓展介面檔案
log -> log.txt 存放專案運行的日志檔案
requirement.txt 存放運行該專案所需要具備的條件
readme.txt 存放對該專案的一些功能介紹等等
PS:實際專案開發中并不一定需要完完全全按照這個框架來設定檔案目錄,比如當bin檔案夾里只有一個start.py檔案時,完全可以把start檔案拿出來直接放在專案的根目錄下,總之只要能大致按照這個框架最終達到軟體開發目錄規范的目的即可,
5.常見內置模塊
5.1.collections:
1.具名元組 namedtuple
匯入:from collections import namedtuple
功能:point = namedtuple('三維坐標', 'x y z')
res = point(1, 2, 3)
print(res) # 三維坐標(x=1, y=2, z=3) 作用就是將資料值賦值給元祖里面的x,y,z并組成一個元組,同時還為這個元組系結了一個名字
2.雙端佇列deque(只做了解)
from collections import deque
作用:佇列前可以用appendleft(x)來追加資料,佇列后可用.append(x)來追加資料,不同于串列,只能使用.append(x)在后面追加新資料
3.Counter(計數)
from collections import counter
str = 'hhhdbfhhffvbvhbfnfjuenvbfih'
res = Counter(str)
print(res) # Counter({'h': 7, 'f': 6, 'b': 4, 'v': 3, 'n': 2, 'd': 1, 'j': 1, 'u': 1, 'e': 1, 'i': 1}) Counter會統計字串中每一個字符出現的次數,并生成一個字典
5.2.time(時間模塊):
import time
time.time() 獲取時間戳(從1970年到現在多少秒) # 1657789438.0584188
time.sleep(3) 定時,延時,總之讓程式停止3秒鐘
time.gmtime() 獲取結構化時間(計算機更易讀懂) # time.struct_time(tm_year=2022, tm_mon=7, tm_mday=14, tm_hour=9, tm_min=3, tm_sec=58, tm_wday=3, tm_yday=195, tm_isdst=0)
time.strftime(format) 獲取格式化時間(更方便人查看) # 2022-07-14 17:12:40
PS:格式化時間的獲取方式
res = time.strftime('%Y-%m-%d %H:%M:%S') # 需要給定一個時間格式
res2 = time.strftime('%Y-%m-%d %X') # %X = %H:%M:%S
print(res) # 2022-07-14 17:16:16
print(res2) # 2022-07-14 17:17:09
time.strptime(string, format) # 將給定的格式化時間string,按照給定格式format轉換為結構化時間
eg:res = time.strptime('2022-07-14', '%Y-%m-%d')
print(res) # time.struct_time(tm_year=2022, tm_mon=7, tm_mday=14, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=195, tm_isdst=-1)
6.作業(將員工管理系統用模塊化編程,結合軟體開發目錄規范來封裝)

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/499331.html
標籤:其他
上一篇:final關鍵字簡介說明
下一篇:簡記C語言清空輸入殘留內容
