如何在python中建立簡單類

成功的程式設計意味著能夠建立一個類。下面是關於建立簡單Python類的知識。...

在面嚮物件語言中,類是一段可擴充套件的程式碼,表示用於建立和使用該類物件的模板。類的物件只是引用所定義類的例項。

featured-image

python類基礎知識

在Python程式語言中,每個資料段都表示為某個類的例項。如果您不熟悉該語言,請在繼續之前參閱我們的Python初學者指南。

類以成員函式(也稱為方法)的形式提供了一組行為,這些行為具有該類的所有例項所共有的實現,並且它還確定了其例項的狀態資訊以屬性的形式表示的方式。

閱讀更多:Python中的類方法:重要區別

下面的程式碼表示Python中定義的類的示例。程式碼中定義的類提供了RaceCar類的實現。

該類的每個例項都為不同品牌的汽車提供了一個簡單的模型,幷包含以下狀態資訊:汽車名稱、駕駛員姓名、汽車車牌號、當前速度、超速收費和顏色。

這一級別的汽車在每輛車內都有一個特殊的感測器,如果司機超過法定時速140英里,將被處以50美元的罰款。

類示例(汽車類)

class Car:#C***tructor#the init method is resp***ible for initialising the values of the instance #variables in the class.def __init__(self, car_name, driver_name, license_plate_number, current_speed, speeding_charge, colour):self.car_name = car_nameself._driver_name = driver_nameself._license_plate_number = license_plate_numberself._current_speed = current_speedself._speeding_charge = speeding_chargeself._colour = colour#Accessor methods#The get_car_name method returns the name of the cardef get_car_name(self):return self._car_name#The get_driver_name method returns the name of the driverdef get_driver_name(self):return self._driver_name#The get_license_plate method returns the license plate of the cardef get_license_plate(self):return self._license_plate#The get_current_speed method returns the current speed at which the car is #movingdef get_current_speed(self):return self._current_speed#The get_speeding_charge method returns the total amount of money that the #driver has to pay for over-speedingdef get_speeding_charge(self):return self._speeding_charge#The get_colour method returns the colour of our sweet ride!def get_colour(self):return self._colour#Mutator methods#The set_driver value changes the driver of our car.def set_driver(self, new_driver):self._driver_name = new_driver#The speeding_ticket method ensures that the driver is charged 50 bucks when#he or she caught speeding above 140 miles per hour :(def speeding_ticket(self, current_speed):if current_speed <= 140:return Falseelse:self._speeding_charge += 50return True#The make_payment method ensures that the driver is able to pay for all the #amount that he or she owes for speeding ticket charges.def make_payment(self, amount_paid):self._speeding_charge -= amount_paid

python類示例的說明

“self”引數

首先,請注意類中宣告的方法簽名與程式設計師用來呼叫函式的方法簽名之間存在差異。例如,類中定義的get\u colour方法接受一個引數,即“self”引數。

但是,當程式設計師在類的例項上呼叫此方法時,他不提供任何引數。同樣的現象可以在speeding\u ticket方法中觀察到,該方法被定義為在類中獲取兩個引數(即self和current\u speed),但是程式設計師可以透過僅提供'current\u speed'引數的值來執行該方法。

這是因為提供的“self”引數的目的是將方法繫結到呼叫它的物件例項,而不是程式設計師給定的值。

建造師

類的建構函式指的是類的方法,使用者可以呼叫該方法來建立該類的物件例項。在Car類中,使用者可以使用以下語法建立物件例項:

#creating our very own Bugatti :)Car(“Bugatti”, “David Sasu”, 90828, 0, 0, "Cherry Red")

執行這段程式碼會導致呼叫Car類中的\uuu init \uuuuu方法。此方法的職責是使用提供的例項值生成新建立的credit car物件。Car類的每個物件由六個例項變數組成,它們是:

  • _車輛名稱
  • _驅動程式名稱
  • _車牌
  • _當前速度
  • _超速駕駛費
  • _顏色

存取器方法

這些方法是為訪問物件例項的狀態資訊而編寫的。在Car類中,編寫的訪問器方法有:

  • 獲取車名
  • 獲取驅動程式名稱
  • 獲取車牌號
  • 獲取當前速度
  • 收取超速費
  • 獲取顏色

突變方法:

這些方法是用來改變物件例項的狀態資訊的。在Car類中,編寫的mutator方法是:

  • 設定驅動程式
  • 超速罰單
  • 付款

封裝的概念

“封裝”是一個術語,用於描述面向物件設計的原則,其中程式的元件不應揭示其各自實現的內部細節。為了增加您對封裝概念的理解,請參閱我們關於封裝的文章。

錯誤檢查

我們對Car類的實現並不健壯,因為它可能會崩潰或發生故障,這取決於它從程式設計師那裡接收到的輸入。

首先,注意,我們沒有檢查超速\u票據和make_u支付方法的引數型別,也沒有檢查建構函式的任何引數的型別。如果使用者提供了不需要的引數,則可能導致程式崩潰。例如,如果使用者呼叫了諸如超速的\u票據(“chips ahoy”),程式將崩潰,因為方法所期望的型別是整數而不是字串。

現在您瞭解了python類的基礎知識

本文介紹了Python類和Python類物件的概念。還向您介紹了構建python類的思想,例如:封裝、“self”識別符號、訪問器方法和mutator方法。

有了這些資訊,您應該能夠自己建立一個簡單的Python類並對其進行測試:)

  • 發表於 2021-03-26 20:18
  • 閱讀 ( 62 )
  • 分類:程式設計

你可能感興趣的文章

json-python解析:簡單指南

... 下面是如何表示物件陣列。在這種表示法中,陣列的每一項都是一個物件。以下是棒球運動員的工資樣本。 ...

  • 發佈於 2021-03-13 11:20
  • 閲讀 ( 46 )

用這些免費的線上互動式shell在瀏覽器中試用python

...過程弄得不知所措。您需要在系統上安裝Python,然後學習如何使用命令列處理程式碼,或者學習如何使用互動式shell,或者學習如何設定pythonide。 ...

  • 發佈於 2021-03-15 00:25
  • 閲讀 ( 52 )

網路上的python:你可以構建的驚人的東西

...元件。從這個意義上說,它幾乎與Django截然相反:Flask對如何構建web應用幾乎沒有任何意見。它簡單易學。 ...

  • 發佈於 2021-03-15 03:11
  • 閲讀 ( 47 )

陣列和列表在python中的工作方式

...資料型別告訴編譯器(或者在Python的情況下告訴直譯器)如何使用資料。資料結構指定可以執行的操作,並且通常實現特定的規則和規定。 ...

  • 發佈於 2021-03-15 17:19
  • 閲讀 ( 52 )

如何讓python和javascript使用json進行通訊

有沒有想過如何在兩種程式語言之間傳送資料?是否嘗試傳送一個物件或多個數據段? ...

  • 發佈於 2021-03-16 01:22
  • 閲讀 ( 68 )

瞭解如何使用python虛擬環境

...您是一名經驗豐富的Python開發人員,還是剛剛起步,學習如何設定虛擬環境對於任何Python專案都是必不可少的。和我一起討論Python虛擬環境的所有知識。 ...

  • 發佈於 2021-03-16 10:00
  • 閲讀 ( 53 )

如何用python讀寫google工作表

... 在本文中,我將向您展示如何使用Python讀寫googlesheets。如果您剛剛開始Python之旅,那麼以下5個學習Python的最佳網站是一個很好的起點。 ...

  • 發佈於 2021-03-16 13:43
  • 閲讀 ( 71 )

製作一個樹莓皮gmail通知燈

在這個快速簡單的Raspberry Pi專案中,您將學習如何**Gmail電子郵件通知燈。如果您有任何未讀的電子郵件,Python指令碼會開啟指示燈。這個專案需要很少的部分,可以在一個小時內完成!當然,你可以把你的LED打扮成任何你喜歡...

  • 發佈於 2021-03-17 17:32
  • 閲讀 ( 52 )

如何使用pandas將excel資料匯入python指令碼

...言。這裡不是手動將資料複製到資料庫中,而是一個關於如何使用Pandas將Excel資料載入到Python中的快速教程。 ...

  • 發佈於 2021-03-19 06:40
  • 閲讀 ( 56 )

7統一遊戲開發語言學習:哪種最好?

...的一切。Unity對小型開發人員是免費的,並且有大量關於如何最好地使用編輯器來建立您的想法原型的教程。 ...

  • 發佈於 2021-03-21 18:18
  • 閲讀 ( 58 )