保姆級DNF韓服手遊最省錢完美畢業天空稱號寵物光環武器寶珠
阿新 • • 發佈:2022-04-02
選課系統
設計模式
在IT行業中設計模式總共有23種 可以分為三大類 1.建立型 2.結構型 3.行為型 """ 設計模式是前輩們發明的經過反覆驗證用於解決固定問題的固定套路 """ # 設計模式之單例模式(23種之一) 單例模式的意思是一個類只能產生一個物件 用於節省資源 應用場景: 有一個類中有很多非常牛逼的繫結給物件的方法 我們需要在很多地方使用它 那麼不同的程式設計師來用不知道有沒有產生物件 所以自己會建立一個新物件 如此往復則會造成資源的浪費 如何實現: 我們需要在類例項化物件的時候進行干涉 >>>: 元類 單例模式:(可以有很多種編寫方式) class MyType(type): obj = None def __call__(self, *args, **kwargs): if self.obj == None: # 如果當前物件為空,表示類沒有被例項化過 self.obj = super().__call__(*args, **kwargs) # 建立一個物件 return self.obj class Student(metaclass=MyType): school = '家裡蹲大學' obj1 = Student() obj2 = Student() print(id(obj1),id(obj2)) # 34044784 34044784 '''單例的實現方式不固定 有很多種''' https://www.cnblogs.com/Dominic-Ji/p/10525994.html
pickle模組
""" 將該模組的目的僅僅是為了在選課系統中使用 後期會學習ORM就不會用pickle了 並且該模組只支援python 相容性很差!!! """ 需求:將物件儲存到檔案 並且取出來之後還可以使用物件的功能 import pickle class Student(object): school = '家裡蹲大學' obj1 = Student() with open('student','wb') as f: pickle.dump(obj1,f) with open('student','rb') as f1: obj2 = pickle.load(f1) print(obj2) # <__main__.Student object at 0x01F1F690> print(obj2.school) # 家裡蹲大學
選課系統專案分析
# 目的:為了練習面向物件程式設計 # 專案分析: 選課系統 角色:學校、學員、課程、講師 要求: 1. 建立北京、上海 2 所學校 2. 建立linux , python , go 3個課程 , linux\py 在北京開, go 在上海開 3. 課程包含,週期,價格,通過學校建立課程 4. 通過學校建立班級, 班級關聯課程、講師 5. 建立學員時,選擇學校,關聯班級 5. 建立講師角色時要關聯學校, 6. 提供三個角色介面 6.1 學員檢視, 可以登入,註冊, 選擇學校,選擇課程,檢視成績 6.2 講師檢視, 講師登入,選擇學校,選擇課程, 檢視課程下學員列表 , 修改所管理的學員的成績 6.3 管理檢視,登入,註冊,建立講師, 建立班級,建立課程,建立學校 7. 上面的操作產生的資料都通過pickle序列化儲存到檔案裡 # 架構設計 三層架構 展示層 學員功能 講師功能 管理員功能 models.py 儲存所有角色類
專案功能分析
專案功能分析
"""為了減輕複雜度(不影響學習,幾乎都是相同邏輯) 班級直接等同於課程"""
# 管理員檢視是我們必須要掌握的!!!
管理員檢視
註冊
登入
建立學校
建立課程
建立講師
講師檢視
登入
檢視教授課程
選擇教授課程
檢視課程學生
評判學生分數
學員檢視
註冊
登入
選擇學校
選擇課程
檢視分數
專案目錄搭建
專案功能搭建
資料儲存剖析
類產生的物件在儲存的時候
自動建立一個與類名一樣的資料夾名 將資料儲存到該資料夾內
# 如何通過物件獲取類對應的字串名稱
obj = Admin('jason',123)
# 固定方法
print(obj.__class__) # <class '__main__.Admin'> 類名
print(obj.__class__.__name__) # Admin 字串