使用 Python 創建類

介紹

類是 Python 中一種非常重要的概念,它是一種封裝數據以及數據相關行為的方式。比如 Python 內置的 str 類型,它通常包括了一些可以用於處理字元串的方法(如split、replace等),同時還可以存儲字元串本身。

在 Python 中,定義一個新的類比其他語言要容易得多,這得益於 Python 的面向對象特性。在這篇文章中,我們將會一步步介紹如何用 Python 創建類。

創建類

定義一個簡單的類

在 Python 中,使用 class 關鍵字定義一個類:

class MyClass:
    pass

這是一個非常基本的類,它不包含任何方法或屬性,在類定義中使用 pass 表示佔位符(用於未來將要寫入的代碼)。現在我們可以使用這個類來創建新的對象。

my_obj = MyClass()

這將會創建一個新的 MyClass 對象 my_obj。

給類添加屬性

一個類可以包含屬性,這些屬性可以用於存儲對象的狀態。在 Python 中,添加一個類屬性是非常容易的:

class MyClass:
    x = 0

這個 MyClass 類現在有一個屬性 x,這個屬性的默認值為 0。

給類添加方法

方法是類中的一個函數。方法可以訪問和操作其所屬類的屬性。在 Python 中添加一個方法是非常容易的:

class MyClass:
    x = 0

    def add_one_to_x(self):
        self.x += 1

定義一個 add_one_to_x 方法,它將類屬性 x 的值加1。需要注意的是,Python 的每個方法都要用 self 參數,它表示對象本身。這個 add_one_to_x 方法就可以在 MyClass 對象上調用了:

my_obj = MyClass()
my_obj.add_one_to_x()
print(my_obj.x)  # 列印 1

繼承

繼承是 Python 中的一種重要的編程概念。它指的是一個類可以從另一個類中繼承屬性和方法。在 Python 中,使用父類名稱列表來定義一個子類:

class Vehicle:
    def __init__(self, speed):
        self.speed = speed

    def drive(self):
        print('Driving...')

class Car(Vehicle):
    pass

這裡定義了一個名為 Vehicle 的類,它包含了一個 __init__ 方法用於初始化類變數 speed,以及一個 drive 方法用於模擬駕駛汽車。然後我們使用 class Car(Vehicle) 定義了一個子類 Car,它從 Vehicle 類中繼承了上述方法。

現在我們可以創建 Car 對象並調用繼承來的方法:

my_car = Car(60)
print(my_car.speed)  # 列印 60
my_car.drive()

封裝

類提供了一種封裝數據的方式, 編寫人員可以隱藏並限制類的一些屬性和方法,防止被意外修改或使用。Python中默認情況下沒有訪問限制,但是我們可以使用下劃線定義數據成員的訪問許可權。

私有變數

對於對象的私有變數和方法,Python 採用了一種命名約定,以實現偽私有的效果。Python 將以雙下劃線(__)開頭的屬性和方法視為私有的,從而限制了其它代碼訪問它們。 如果要從外部訪問這些屬性和方法,可以使用「_類名__屬性名/方法名」這樣的方式來做(但這是不推薦的做法)。

class MySecretClass:
    __password = '123456'

    def greet(self):
        print('Hello World!')

    def get_password(self):
        return self.__password

my_obj = MySecretClass()
print(my_obj.get_password())  # 列印 123456

屬性 __password 被定義成私有的,這意味著它只能從類內部訪問,不能從外部訪問。但是我們可以通過公有方法 get_password 來獲取密碼。

保護變數

與私有變數相比,受保護的變數在屬性名之前只使用一個下劃線。受保護的變數不應被從類的外部使用,但是可以被其子類使用。

class MyProtectedClass:
    _password = '123456'

    def greet(self):
        print('Hello World!')

    def get_password(self):
        return self._password

class MySubClass(MyProtectedClass):
    def show_password(self):
        print(self._password)

my_obj = MySubClass()
print(my_obj.get_password())  # 列印 123456
my_obj.show_password()  # 列印 123456

在這個例子中,使用一個受保護的變數 _password。MySubClass 子類能夠訪問父類的受保護屬性(因為它是受保護的,而不是私有的), 所以我們可以從 MySubClass 實例中訪問和修改它。

類方法和靜態方法

類方法和靜態方法是 Python 中的兩種特殊類型的方法。

類方法

類方法是從類中調用,並且被所有實例共享的方法。定義一個類方法時,需要在方法上方添加 @classmethod 裝飾器。

class MyClass:
    x = 0

    @classmethod
    def add_one_to_x(cls):
        cls.x += 1

my_obj = MyClass()
MyClass.add_one_to_x()
print(my_obj.x)  # 列印 1

在這個例子中,我們使用了 @classmethod 裝飾器來定義了一個叫做 add_one_to_x 的類方法,它將類屬性 x 的值加1。注意,類方法可以像通常的方法一樣通過類或實例調用,無論是哪一種方式,都具有相同的多態性。

靜態方法

靜態方法是一種與類相關但與實例無關的方法。這些方法不會訪問任何類或實例級別的數據。使用 @staticmethod 裝飾器定義一個靜態方法。

class MyClass:
    @staticmethod
    def say_hello():
        print("Hello, World!")

MyClass.say_hello()

在這個示例中,我們定義了一個靜態方法 say_hello(),該方法不訪問類的任何內容,也不訪問實例級別數據,因此,我們可以在類無需實例化的情況下調用它。

總結

Python 中創建類是一件非常容易的事情,並且使用面向對象編程技術的 Python 代碼通常易於閱讀和維護。在這篇文章中,我們從多個角度介紹了使用 Python 創建類,包括:定義簡單的類、類屬性、類方法、實例方法、靜態方法,繼承、封裝等基礎概念的使用。

小標題列表

  1. 定義一個簡單的類

  2. 給類添加屬性

  3. 給類添加方法

  4. 繼承

  5. 私有變數

  6. 保護變數

  7. 類方法

  8. 靜態方法

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/311092.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2025-01-05 13:23
下一篇 2025-01-05 13:23

相關推薦

  • Python列表中負數的個數

    Python列表是一個有序的集合,可以存儲多個不同類型的元素。而負數是指小於0的整數。在Python列表中,我們想要找到負數的個數,可以通過以下幾個方面進行實現。 一、使用循環遍歷…

    編程 2025-04-29
  • Python中引入上一級目錄中函數

    Python中經常需要調用其他文件夾中的模塊或函數,其中一個常見的操作是引入上一級目錄中的函數。在此,我們將從多個角度詳細解釋如何在Python中引入上一級目錄的函數。 一、加入環…

    編程 2025-04-29
  • Python計算陽曆日期對應周幾

    本文介紹如何通過Python計算任意陽曆日期對應周幾。 一、獲取日期 獲取日期可以通過Python內置的模塊datetime實現,示例代碼如下: from datetime imp…

    編程 2025-04-29
  • Python周杰倫代碼用法介紹

    本文將從多個方面對Python周杰倫代碼進行詳細的闡述。 一、代碼介紹 from urllib.request import urlopen from bs4 import Bea…

    編程 2025-04-29
  • 如何查看Anaconda中Python路徑

    對Anaconda中Python路徑即conda環境的查看進行詳細的闡述。 一、使用命令行查看 1、在Windows系統中,可以使用命令提示符(cmd)或者Anaconda Pro…

    編程 2025-04-29
  • Python字典去重複工具

    使用Python語言編寫字典去重複工具,可幫助用戶快速去重複。 一、字典去重複工具的需求 在使用Python編寫程序時,我們經常需要處理數據文件,其中包含了大量的重複數據。為了方便…

    編程 2025-04-29
  • python強行終止程序快捷鍵

    本文將從多個方面對python強行終止程序快捷鍵進行詳細闡述,並提供相應代碼示例。 一、Ctrl+C快捷鍵 Ctrl+C快捷鍵是在終端中經常用來強行終止運行的程序。當你在終端中運行…

    編程 2025-04-29
  • Python程序需要編譯才能執行

    Python 被廣泛應用於數據分析、人工智慧、科學計算等領域,它的靈活性和簡單易學的性質使得越來越多的人喜歡使用 Python 進行編程。然而,在 Python 中程序執行的方式不…

    編程 2025-04-29
  • Python清華鏡像下載

    Python清華鏡像是一個高質量的Python開發資源鏡像站,提供了Python及其相關的開發工具、框架和文檔的下載服務。本文將從以下幾個方面對Python清華鏡像下載進行詳細的闡…

    編程 2025-04-29
  • Python編程二級證書考試相關現已可以上網購買

    計算機二級Python考試是一項重要的國家級認證考試,也是Python編程的入門考試。與其他考試一樣,Python編程二級證書的考生需要進入正式考試,而為了備考,這篇文章將詳細介紹…

    編程 2025-04-29

發表回復

登錄後才能評論