Python基礎知識:字典在類中的一種使用方法

2020-12-15 編碼那些事

字典(dict)是Python語言中內置的一種數據類型,在Python的類中靈活使用字典可能會起到意想不到的效果,簡化我們的編程代碼,下面通過一個例子進行說明。

類的定義

先看下面一個類的定義,代碼如下所示:

在上面的代碼中定義了一個學生類Student,類中使用了一個字典,用字典存儲學生類的三個屬性:「name」、「age」和「score」,並且可隨時對其實例的屬性恢復其默認值、賦新值或獲取其值,代碼具體說明如下:

第11-15行,定義類的私有成員變量「__attributes」,它是一個字典,僅在類內部用作保存學生類的三個屬性「name」、「age」和「score」的默認值第16-18行,類的初始化函數,第17行首先定義了一個類的成員變量self.attributes為空字典,第18行調用setDefaultAttribute函數為其賦值第20-21行,定義setDefaultAttribute函數,這兒使用了字典的update函數,將私有成員變量「__attributes」的值賦給類的成員變量self.attributes,供其實例調用。所以這兒self.attributes存儲了學生類的三個屬性「name」、「age」和「score」的默認值,第23-26行,定義setAttribute函數,通過一個字典參數kwargs用來設置self.attributes字典中「name」、「age」和「score」的值,這兒設定新值之前,先對輸入的kwargs中每個關鍵字判斷其是否屬於該類屬性的關鍵字,若屬於,才賦值第28-29行,定義getAttribute函數,通過輸入關鍵字獲得類的屬性值

類的使用例子

使用上面的學生類編寫了一個例子,代碼如下:

代碼簡要說明如下:

第31-32行,定義學生類的一個實例student,並直接通過其成員變量attributes列印出其三個屬性值第34-35行,調用setAttribute函數更新student的屬性值,列印出其三個屬性值第37-38行,調用setDefaultAttribute函數,將student的屬性值恢復為默認值,列印出其三個屬性值第40-41行,調用setAttribute函數,只更新student的其中一個name屬性值,列印出其三個屬性值第43行,調用getAttribute函數,僅列印出name屬性值

運行結果如下圖所示:

結論

通過上面的例子可看出,在類中使用字典類型,可方便保存類的多個屬性值,並且可以通過調用字典的相關函數,隨時對類實例的屬性恢復默認值、賦新值或獲取其值等操作,相對來說,是比較簡單的一種方法。

歡迎加關注,共同交流。

相關焦點

  • 瘋狂的Python字典
    我第一次看到這個字典表達式真的讓我難住了。在python文檔中進行一些探索之後,我發現python將bool作為了int類型的一個子類。是的,這意味著你可以在編程時上使用bool值作為Python中的列表或元組的索引:>>> ['no', 'yes'][True]'yes'但為了代碼的可讀性起見,您不應該類似這樣的來使用布爾變量。(也請建議你的同事別這樣做)Anyway,讓我們回過來看我們的字典表達式。
  • python中字典中的賦值技巧,update批量更新、比較setdefault方法與...
    知識回顧:之前這節主要學習了字典的刪除,主要涉及到兩個方法:1. Pop方法:刪除指定的鍵的鍵值對。需要指定一個自己已知的鍵,刪除後返回的是鍵對應的值。2. Popitem方法:刪除的是最後一個鍵值對。在刪除後,返回所刪除的這個鍵值對。
  • Python基礎知識
    中的輸入與輸出:● 輸入:使用 input 或 raw_inputPython2 中有 raw_input 和 input 兩個負責輸入的函數它倆的區別需要先了解下 eval()函數結論:eval()函數可以把字典、列表、數字等 python 內建的數據類型與字符 串進行轉換在 python2 環境中 help
  • python中字典dict的操作技巧匯總
    字典是使用最為廣泛的數據結構了,從結構來看,其內容就是鍵值對,鍵稱為key, 值稱為value, 類似詞典中通過前面的索引來快速查找後面的頁面,通過key可以快速定位對應的值。字典,是python中對這種結構的命名,在其他語言中有其他的名字,比如perl中稱之為哈希。
  • 新手看懂這篇Python入門基礎知識總結就可以進入下階段學習
    一張圖學會python網上搜索一張圖學會python,雖然誇張,但是python基礎的知識都包括在裡面。還有這張圖的內容是python2的,好像沒有python3的;可能有,只是我沒有找到。總結一下Python入門基礎知識後綴文件名用.py為後綴,python3文件名用中文也可以運行;python文件自己用的可以中文,如果線上項目或者多人合作的時候,就用英文命名。注釋Python中單行注釋以#開頭,多行注釋可以左右各三個單引號或者雙引號。
  • 小白學 Python(12):基礎數據結構(字典)(上)
    基礎數據結構(列表)(下)小白學 Python(11):基礎數據結構(元組)字典我先問一下,有沒用過字典的麼?嗯,這本字典看起來很有年代感了。那麼 Python 中的字典是什麼樣呢?我們一邊看代碼一邊聊:創建字典字典由一組鍵(key)值(value)對組成的,類似於:{key1: value1, key2: value2}這樣一種形式。字典的每個鍵值(key=>value)對用冒號 : 分割。每個對之間用逗號 , 分割。整個字典包括在花括號 {} 中。
  • python語法基礎
    不同類型的數據之間可以轉換,用法如下# 數字轉字符串str(3)str(3.1)# 字符串轉數字int('3')float('3.1')# 整形轉浮點型float(3)在python中,有一種特殊的數據類型None,表示空值,沒有值,類似R語言中的NULL。4.
  • python新知識 字典視圖
    python新知識   字典視圖從bug中學習:字典返回的居然是視圖bug與之前相同,我在試圖從dataframe和series中提取值
  • 【python速查系列】字典系列使用速查--創建字典
    直接創建字典這個是最直接的方法,就是在變量定義的時候,直接通過標識符{}來定義字典。
  • 【python速查系列】字典系列使用速查--刪除字典元素
    del a['phone']print('字典元素(del)後的字典為:', a)結果為:注意,這個方法是沒有返回值的。pop和popitem方法這兩個方法都是有返回值,只是返回值有點不多,pop返回的是字符串,popitem返回的是一個包含(key, value)的元組。pop是需要提供一個參數的,就是key值。popitem不需要提供參數,它是隨機刪除字典的內容。
  • 【Python雜貨鋪】速學python基礎
    「人生苦短,我學python」是編程屆的名言。用python寫小腳本的便捷性,讓很多其他語言的學習者把python當作輔助語言。擁有了某一個語言的功底,再來學習另外一種語言應該是十分快速的。編程理念都十分相似,只是看看語言的差異性。帶著Java的基礎,學習Python,準備上路了。
  • python數據類型總結——字典
    查字典的時候,通常我們會從某個字的特徵出發,如拼音或偏旁,最終根據索引,找到這個字。python中,也提供一種數據結構,它包含鍵和值兩個部分,通過鍵可以快速地找到對應的值。python字典字典通過大括號來聲明,可包含若干個鍵值對。字典是可變的。如下:
  • python爬蟲基礎之urllib的使用
    這篇文章主要介紹了python爬蟲基礎之urllib的使用,幫助大家更好的理解和使用python,感興趣的朋友可以了解下一
  • Python中的星號:用途及使用方法(下篇)
    該函數返回一個新列表,其中給定列表(或其他序列)中的第一個項被移動到新列表的末尾。使用*運算符是將不同類型的迭代器串在一起的好方法。*運算符適用於任何迭代,而使用+運算符只適用於類型均相同的特定序列。注意上面的最後一行需要一個列表和一個生成器,並將它們轉儲到一個新的集合中。在使用*前,沒有一種簡單的方法在一行代碼中做到這一點。
  • Python每天一分鐘:類定義進階/炫技—使用type函數動態創建類
    Python中的type函數是常用於查看變量類型,在調試python代碼和bug修復過程中都是非常有效的工具。然而,type函數的強大功能並非只能用於查看變量類型,在Python中完全允許使用 type()函數來動態創建類,或者說定義類,這也是python類編程中的進階用法!
  • Python基礎知識儲備,字典dict的用法,花個幾分鐘時間學習它吧
    python開發1)字典基本介紹字典Dict中的每一個元素都是通過key-value鍵值對來表示,key用來標識一個元素,所以在字典中key不能相同,每個鍵值對用冒號 : 分割,每個對之間用逗號 , 分割,整個字典包括在大括號{ }中。
  • Python基礎
    usr/bin/python#coding=utf-8print("hello world!");Python 基礎語法$ python test.py以下劃線開頭的標識符是有特殊意義的。以單下劃線開頭(_foo)的代表不能直接訪問的類屬性,需通過類提供的接口進行訪問,不能用"from xxx import *"而導入;以雙下劃線開頭的(foo)代表類的私有成員;以雙下劃線開頭和結尾的(foo)代表python裡特殊方法專用的標識,如init()代表類的構造函數。在Python的代碼塊中必須使用相同數目的行首縮進空格數。
  • 第27p,成雙成對出現與消失,Python中字典的內置方法
    大家好,我是楊數Tos,這是《從零基礎到大神》系列課程的第27篇文章,第二階段的課程:Python基礎知識:Python的數據類型之字典(下篇)。學習本課程,建議先看一遍:【計算機基礎知識】課程。我們在程序中定義的任何數據,最後都是為了使用它;如果不使用,定義這個數據將變得毫無意義;而使用數據無非就是在不同的應用場景下對數據進行增、刪、改、查操作。對於前面文章中提到過的通用方法,這裡就不再重複贅述。
  • python字典操作大全,學習python第7天
    python字典跟列表類型,能存儲多個數據,並且還能在訪問元素的時候可以很快定位到需要的元素。而python字典操作方法有多少種呢?下面羽憶教程為您介紹。,結構如:sco = {'name':'小明','age': 11},需要注意的是python字典中的值不允許重複。
  • Python零基礎入門-03-Python基礎語法
    Python零基礎入門-03-Python基礎語法本節課的知識點:1,python系列教程的學習方法。2,熟悉Python的基礎語法內容。1,python系列課程學習方法由於python屬於腳本語言,如果單純的解釋語法沒有什麼實在的意義,所以我python系列的課程都是以視頻講解為主,至於這裡的文章,是給你複習用的。2. 基礎語法python的基礎語法都將以小例子作為驅動來講解。如果你有其他程式語言的基礎,那麼直接看文章就會很快上手。