python中什麼時候使用自定義類
Python中所有的資料都是物件,它提供了許多高階的內建資料型別,功能強大,使用方便,是Python的優點之一。那麼什麼時候使用自定義類呢?
(推薦教程:)
比如設計一個Person類,如果不使用自定義類,可以這樣做:
person=['mike', 23, 'male'] #0-姓名, 1-年紀, 2-性別 print(person[0], person[1], person[2])
可以看到,使用內建型別list,需要用下標來引用成員資料,不直觀。可以改用dic型別來做:
person1={'name':'mike', 'age': 23, 'sex': 'male'} person2={'name':'hellen', 'age': 20, 'sex': 'female'} print(person1['name'], person1['age'], person1['sex'])
這樣不用記憶下標,直觀多了。但是字典的語法仍然有些麻煩,如果能夠像這樣引用:person.name,person.age等,就更好。這就是自定義類存在的好處了:
class Person: def __init__(self, name, age, sex): self.name = name self.age = age self.sex = sex def __str__(self): #過載該函式便於測試 sep = ',' return self.name+sep+str(self.age)+sep+self.sex person1 = Person('mike', 23, 'male') person2 = Person('hellen', 20, 'female') print(person1) print(person2.name, person2.age, person2.sex)
可以看到,只要定義好這個類的建構函式,就可以很方便的生成這個類的例項,並且引用資料成員也很方便,比直接使用內建型別方便多了。其實Python就是用內建型別dic來實現自定義類的成員的儲存和引用的,從這個角度來看,自定義類是內建類的簡化使用方式,內建型別是自定義型別內部必要的組成部分。同時,由於自定義類可以定義自己的成員函式或者過載預定義的方法,所以自定義類擴充套件了內建類的功能,可以提供對現實事物更好的模擬,這正是物件導向程式設計的優點。程式設計的時候,先對所要模擬的事物形成概念,然後儘量使用類來抓住概念,這是物件導向設計的關鍵。如果需要產生多個同類的物件,應該儘可能地設計一個自定義類去抽象它們。
對自定義類的使用也別過分,有些功能只需要定義一個函式就可以做到了,這個時候就沒有必要設計一個自定義類。
相關教程推薦:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/1020/viewspace-2836675/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Python的類什麼時候用Python
- react中什麼使用定義變數,需要使用useRef,什麼時候直接定義即可?React變數
- C++中什麼時候用move,什麼時候用forward?C++Forward
- 舉例說明你什麼時候會用抽象類,什麼時候更願意使用介面?抽象
- Unity ECS System在什麼時候更新?如何自定義這個更新的時機?Unity
- python什麼時候縮排Python
- 到底什麼時候使用mqMQ
- 在JavaScript中什麼時候使用==是正確的?JavaScript
- 什麼時候使用z-index?Index
- 什麼時候使用 Lambda 函式?函式
- EJB2.0中什麼時候用local interface,什麼時候用remote interface (轉)REM
- 什麼是介面?為什麼使用介面? 什麼時候使用介面?(轉)
- 使用 Laravel Resource 類時自定義分頁資訊Laravel
- 在 JavaScript 中,什麼時候使用 Map 或勝過 ObjectJavaScriptObject
- MySQL什麼時候會使用內部臨時表?MySql
- 什麼時候釋出
- 什麼時候呼叫layoutSubviewsView
- 4 張動圖解釋為什麼(什麼時候)使用 Redux圖解Redux
- 天行健課堂 | 什麼時候使用SWOT分析?
- 什麼時候可以考慮使用MySQL MEMORY引擎MySql
- 什麼時候你不應該使用微服務微服務
- T-SQL什麼時候該使用分號SQL
- 區分import 什麼時候使用 花括號{ }Import
- springframe中的petstore中的setServlet()什麼時候呼叫SpringServlet
- 什麼時候採用socket通訊,什麼時候採用http通訊HTTP
- 新版什麼時候釋出?
- 什麼時候該用vuex?Vue
- 什麼時候該用MongoDB?MongoDB
- 什麼是遷移學習?什麼時候使用遷移學習?遷移學習
- Python會在什麼時候被其他語言取代Python
- 什麼時候你不能使用箭頭函式?函式
- 什麼時候使用繫結變數效能反而更差變數
- tar -cvf 和 tar cvf 區別,什麼時候使用 " - "
- 什麼時候該使用NoSQL儲存資料庫?SQL資料庫
- 什麼時候在EJB系統中使用XML (轉)XML
- C#中自定義異常類C#
- Haskell程式設計精華:什麼時候該註釋,什麼時候不該註釋Haskell程式設計
- 我們在使用jQuery的時候,到底在使用什麼?jQuery