用簡單例子解析 Python中的類和例項

2021-09-25 00:19:09 字數 2019 閱讀 2993

為什麼需要類?

python提供很多簡單的資料結構,比如列表和字串,應對大多數需求綽綽有餘,但是有些情況下,僅僅用這些簡單資料結構無法表達我們想實現的東西,比如一輛車,或者更細化一些,一輛奧迪q7或是一輛特斯拉電動車。

你可以指定乙個列表,第乙個元素存放車的品牌,第二個元素存放車的型號,第三個元素存放車的出廠時間,但是你怎麼知道某乙個元素具體對應到車的什麼資訊?

這種辦法太主觀隨意,也不直觀。你可能會想到用字典的鍵值對表示,這樣就意味著我們必須重複輸入很多**。為了更直觀的解決此類問題,我們引入類的概念。

類可以讓我們建立複雜的資料結構,並任意使用任何有用資訊。比如,我們建立乙個表示車的類,這個類裡有三個屬性:品牌,型號,出廠時間。

如何定義類和類的例項?

而類的例項是乙個特殊的類:指明了各種屬性對應的具體資訊,比如,我建立了一輛車,品牌是奧迪,型號是q7,出廠時間是2017。為了更好的理解和區分「類」和「類的例項」,我們打個比方,大家都填過個人資訊登記表,每個人都必須填入與**相對應的資訊,比如姓名,性別,年齡等等,但是具體填寫的內容因人而異。

類就相當於這個空白的登記表,上面指定了要填寫的內容。而你填寫完之後的表,就相當於乙個類的例項,上面記載著與你個人相關的資訊。這個根據類來建立例項的過程叫做「例項化」。

好了,現在我們看一下python中真實的類(圖一car.py)。第乙個單詞class表示我們在建立乙個類。第二個單詞car是類的名字,後面跟一對圓括號,通常來說,預設類名首字母大寫。類中的變數稱為屬性,類中的函式稱為方法。

__init__()是乙個特殊的初始化函式,建立car例項時,自動呼叫該方法,雖未顯示地包含return語句,但python自動返回乙個表示這輛車的例項,比如,my_car = car('audi', 'q7', '2017') 會把audi賦給self.make, 把q7賦給self.model,把2017賦給self.year,並返回乙個例項my_car。以self為字首的變數可供該類中的所有方法使用,比如,在get_descriptive_name()中,可以呼叫self.make,self.model, self.year。

可以把self理解為乙個類的例項,更確切的說,是乙個指向例項本身的引用,讓例項能夠訪問類中的屬性和方法。還記得之前關於人員登記表的比喻嗎?每個例項具有相同的字段結構,但是每個欄位裡填寫的資訊不同,這就是為什麼寫self.make = make,而不是寫car.make = make。

你可能會注意到類中的每個方法的第乙個形參都是關鍵字self,self是必不可少的,而且必須位於首,但是,當我們呼叫這些方法時候(e.g. my_car = car('audi', 'q7', '2017')),只需要傳遞三個值,為什麼略過self這個引數呢?

圖一 car.py

如何使用類?

python中使用點號訪問物件的屬性和方法:my_car.year,my_car.get_descriptive_name(),

見圖二my_car.py**中第7-8行。

回到上乙個問題,圖一中第9行**定義get_descriptive_name(self)時引數self必不可少,為什麼圖二第8行**呼叫該方法時,省略了實參self?

正是因為我們在呼叫get_descriptive_name()時用點號指明了例項my_car,python才能自動識別例項my_car,並建立my_car的引用,並把這個引用傳給引數self。如果不通過例項呼叫方法,我們應該這麼寫:car. get_descriptive_name(my_car),此時,明確把my_car當做實參傳給引數self,見圖二**第9行。

圖二 my_car.py

圖三是程式執行結果:

圖三 執行結果

這一節我們學習了類和類的例項,以及如何使用類。

用jsonArray解析資料例子

1 需要解析的資料格式為 2 解析資料的程式為 private void getpdaserverdata string url for int i 0 i marks.length i catch jsonexception e new alertdialog.builder this setme...

用 python 解析歌詞

2.解析歌詞 musiclrc 00 03.50 傳奇 00 19.10 作詞 劉兵 作曲 李健 00 20.60 演唱 王菲 00 26.60 04 40.75 02 39.90 00 36.25 只是因為在人群中多看了你一眼 04 49.00 02 47.44 00 43.69 再也沒能忘掉你容...

php中幾個簡單的例子

1.可變變數的使用 var1 str var1 yunf 用 var1取代 str,這就是可變變數.echo var1.echo str 2.比較兩個時間戳大小 要比較兩個時間的大小,我們需要將時間轉化為時間戳格式,然後再進行比較這是最常用的方法。常用到的函式是 strtotime 語法格式 str...