Python中階建議之使用自定義類來代替字典的作用
前言:Python作為一門面向對象的語言 , 在學習過程會接觸到繼承 , 多態 , 封裝等各種方面的特點,在開發過程中我們經常使用自定義的類進行簡化運輸,如果對於類的掌握相對好一點的話 , 寫出來的代碼會易於維護與更改 , python中的字典,可以用來保存對象在自己的生命內的動態狀態.在未知類型中,總是特別好用,人物姓名用字典進行保存 , 可整體操作 , 節省對象的定義.
class instead_name(object): def __init__(self): self.class = {} def add_a_student(self,name): self.class[name] = [] def add_score(self,name,score): self.class[name].append(score)the_book = instead_name()the_book.add_a_student(gays)the_book.add_score(gays,85)#關於字典類的使用
在字典中儲存單一簡潔的信息很容易實現,如果需要儲存的屬性過於複雜,那麼好的方法是新建一個類
如果我們要用字典儲存複雜的數據 , 那麼我們就需要用到嵌套結構 , 而創建新類可免於嵌套 .
chengji = []chengji.append((100,0.60))
元組長度加長以後 , 代碼逐漸趨於複雜化 , 這時候推薦使用collections模塊中的namedtuple , 來實現 :
import collectionsgrade = collections.namedtuple(gay,(s,v))
namedtuple優缺點總結:
優點
- 所定義的數據類簡單可靠
- 可以指定位置和關鍵字
缺點:
- 無法指定參數默認值,變化過於大的數據並不是很方便
- 與list類似,可通過下標訪問,導致其他人不知道製作人的意圖,用不同的方式遍歷字典或元組
小結:
- 字典的定義不要嵌套過多層
- 在需要儲存簡單且固定的數值時候,優先考慮namedtuple
- 字典過於複雜應該拆為自定義類優化代碼閱讀性和可維護性
個人QQ:2533524298
推薦閱讀:
※買西瓜的高級玩法,用好你的智能手機
※偽·從零開始學Python - 1.3 Python Shell的基本使用
※走迷宮——來做道題?
※有什麼你覺的很好的 idea,卻一直沒時間來實現?