首頁 後端開發 Python教學 python是物件導向還是面向過程

python是物件導向還是面向過程

Jan 05, 2023 pm 04:54 PM
python 物件導向

python是物件導向的。 Python語言在設計之初,就定位為一門物件導向的程式語言,「Python中一切皆物件」就是對Pytho 這門程式語言的完美詮釋。類別和物件是Python的重要特徵,相較於其它物件導向語言,Python很容易就可以創建出一個類別和物件;同時,Python也支援物件導向的三大特徵:封裝、繼承和多態。

python是物件導向還是面向過程

本教學操作環境:windows7系統、python3版,DELL G3電腦

Python雖然是解譯型語言,但Python 語言在設計之初,就定位為一門物件導向的程式語言,「Python 中一切皆物件」就是對Python 這門程式語言的完美詮釋。

什麼是物件導向

物件導向程式設計是在流程導向程式設計的基礎上發展來的,它比流程程式設計具有更強的靈活性和擴展性。物件導向程式設計是程式設計師發展的分水嶺,許多初學者會因為無法理解物件導向而放棄學習程式設計。

物件導向程式設計(Object-oriented Programming,簡稱 OOP),是一種封裝程式碼的方法。其實,在前面章節的學習中,我們已經接觸了封裝,比如說,將亂七八糟的資料扔進列表中,這就是一種簡單的封裝,是資料層面的封裝;把常用的程式碼區塊打包成一個函數,這也是一種封裝,是語句層面的封裝。

程式碼封裝,其實就是隱藏實作功能的具體程式碼,只留給使用者使用的接口,就好像使用計算機,使用者只需要使用鍵盤、滑鼠就可以實作一些功能,而根本不需要知道其內部是如何運作的。

物件導向編程,也是一種封裝的思想,不過顯然比以上兩種封裝更先進,它可以更好地模擬真實世界中的事物(將其視為物件),並把描述特徵的資料和程式碼區塊(函數)封裝在一起。

打個比方,若在某遊戲中設計一個烏龜的角色,該如何來實現呢?使用物件導向的想法會更簡單,可以分為如下兩個面向來描述:

  • 從表面特徵來描述,例如,綠色的、有4 條腿、重10 kg 、有外殼等等。

  • 從所具有的行為來描述,例如,它會爬、會吃東西、會睡覺、會將頭和四肢縮到殼裡,等等。

如果將烏龜用程式碼來表示,則其表面特徵可以用變數來表示,其行為特徵可以透過建立各種函數來表示。參考程式碼如下所示:

class tortoise:
    bodyColor = "绿色"
    footNum = 4
    weight = 10
    hasShell = True
    #会爬
    def crawl(self):
        print("乌龟会爬")
    #会吃东西
    def eat(self):
        print("乌龟吃东西")
    #会睡觉
    def sleep(self):
        print("乌龟在睡觉")
    #会缩到壳里
    def protect(self):
        print("乌龟缩进了壳里")
登入後複製

注意,以上程式碼僅是為了示範物件導向的程式設計思想。

因此,從某種程式上,相比較只使用變數或只使用函數,使用物件導向的想法可以更好地模擬現實生活中的事物。

不僅如此,在Python 中,所有的變數其實也都是對象,包括整形(int)、浮點型(float)、字串(str)、列表(list)、元組(tuple )、字典(dict)和集合(set)。以字典(dict)為例,它包含多個函數供我們使用,例如使用keys() 取得字典中所有的鍵,使用values() 取得字典中所有的值,使用item() 取得字典中所有的鍵值對,等等。

物件導向相關術語

在系統學習物件導向程式設計之前,初學者要了解一些關於物件導向的術語。當和其他人討論程式碼的時候,或嘗試尋找我們遇到的問題的解決方案時,知道正確的術語會很有幫助。

在物件導向中,常用術語包括:

  • 類別:可以理解是一個模板,透過它可以創造出無數個具體實例。例如,前面寫的 tortoise 表示的只是烏龜這個物種,透過它可以創造出無數個實例來代表各種不同特徵的烏龜(這個過程又稱為類別的實例化)。

  • 物件:類別並不能直接使用,透過類別建立的實例(又稱為物件)才能使用。這有點像是汽車圖紙和汽車的關係,圖紙本身(類)並不能為人們使用,透過圖紙創建出的一輛汽車(物件)才能使用。

  • 屬性:類別中的所有變數稱為屬性。例如,tortoise 這個類別中,bodyColor、footNum、weight、hasShell 都是這個類別擁有的屬性。

  • 方法:類別中的所有函數通常稱為方法。不過,和函數所有不同的是,類別方法至少要包含一個 self 參數(後續會做詳細介紹)。例如,tortoise 類別中,crawl()、eat()、sleep()、protect() 都是這個類別所擁有的方法,類別方法無法單獨使用,只能和類別的物件一起使用。

Python的物件導向特徵:

類別和物件是Python 的重要特徵,相較於其它物件導向語言,Python 很容易就可以創建出一個類別和物件。同時,Python 也支援物件導向的三大特徵:封裝、繼承和多型。

封裝

  物件導向程式設計中的術語物件(Object)基本上可以看做資料(特性)以及由一系列可以存取、操作這些數據的方法所組成的集合。傳統意義上的「程式=
資料結構 演算法」被封裝」掩蓋「並簡化為「程式=物件 訊息」。物件是類別的實例,類別的抽象則需要經過封裝。封裝可以讓呼叫者不用關心物件是如何建構的而直接進行使用。

繼承

  • 類別繼承:

      繼承給人的直接感覺是這是一種複用程式碼的行為。繼承可以理解為它是以普通的類別為基礎建立專門的類別對象,子類別和它繼承的父類別是IS-A的關係。

  • 多重繼承:

      不同於C#,Python是支援多重類別繼承的(C#可繼承自多個Interface,但最多繼承自一個類別)。多重繼承機制有時很好用,但是它容易讓事情變得複雜。

多態

  多態意味著可以對不同的物件使用相同的操作,但它們可能會以多種形態呈現出結果。在Python中,任何不知道物件到底是什麼類型,但又需要物件做點什麼的時候,都會用到多態。方法是多態的,運算子也是多型的。

【相關推薦:Python3影片教學

以上是python是物件導向還是面向過程的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1664
14
CakePHP 教程
1423
52
Laravel 教程
1318
25
PHP教程
1269
29
C# 教程
1248
24
PHP和Python:解釋了不同的範例 PHP和Python:解釋了不同的範例 Apr 18, 2025 am 12:26 AM

PHP主要是過程式編程,但也支持面向對象編程(OOP);Python支持多種範式,包括OOP、函數式和過程式編程。 PHP適合web開發,Python適用於多種應用,如數據分析和機器學習。

在PHP和Python之間進行選擇:指南 在PHP和Python之間進行選擇:指南 Apr 18, 2025 am 12:24 AM

PHP適合網頁開發和快速原型開發,Python適用於數據科學和機器學習。 1.PHP用於動態網頁開發,語法簡單,適合快速開發。 2.Python語法簡潔,適用於多領域,庫生態系統強大。

sublime怎麼運行代碼python sublime怎麼運行代碼python Apr 16, 2025 am 08:48 AM

在 Sublime Text 中運行 Python 代碼,需先安裝 Python 插件,再創建 .py 文件並編寫代碼,最後按 Ctrl B 運行代碼,輸出會在控制台中顯示。

PHP和Python:深入了解他們的歷史 PHP和Python:深入了解他們的歷史 Apr 18, 2025 am 12:25 AM

PHP起源於1994年,由RasmusLerdorf開發,最初用於跟踪網站訪問者,逐漸演變為服務器端腳本語言,廣泛應用於網頁開發。 Python由GuidovanRossum於1980年代末開發,1991年首次發布,強調代碼可讀性和簡潔性,適用於科學計算、數據分析等領域。

Python vs. JavaScript:學習曲線和易用性 Python vs. JavaScript:學習曲線和易用性 Apr 16, 2025 am 12:12 AM

Python更適合初學者,學習曲線平緩,語法簡潔;JavaScript適合前端開發,學習曲線較陡,語法靈活。 1.Python語法直觀,適用於數據科學和後端開發。 2.JavaScript靈活,廣泛用於前端和服務器端編程。

Golang vs. Python:性能和可伸縮性 Golang vs. Python:性能和可伸縮性 Apr 19, 2025 am 12:18 AM

Golang在性能和可擴展性方面優於Python。 1)Golang的編譯型特性和高效並發模型使其在高並發場景下表現出色。 2)Python作為解釋型語言,執行速度較慢,但通過工具如Cython可優化性能。

vscode在哪寫代碼 vscode在哪寫代碼 Apr 15, 2025 pm 09:54 PM

在 Visual Studio Code(VSCode)中編寫代碼簡單易行,只需安裝 VSCode、創建項目、選擇語言、創建文件、編寫代碼、保存並運行即可。 VSCode 的優點包括跨平台、免費開源、強大功能、擴展豐富,以及輕量快速。

notepad 怎麼運行python notepad 怎麼運行python Apr 16, 2025 pm 07:33 PM

在 Notepad 中運行 Python 代碼需要安裝 Python 可執行文件和 NppExec 插件。安裝 Python 並為其添加 PATH 後,在 NppExec 插件中配置命令為“python”、參數為“{CURRENT_DIRECTORY}{FILE_NAME}”,即可在 Notepad 中通過快捷鍵“F6”運行 Python 代碼。

See all articles