python之面向對象初體驗(面向對象python詳細教程)

本文目錄一覽:

python:第二部分:面向對象:面向對象object orinted

. 面向過程:

1、分析解決問題在步驟並解決。

2、公式:程序=算法+數據結構

3、優點:所有環節細節自己掌握

4、缺點:所有細節都自己考慮,工作量左

.面向對象:

1、找出解決問題在人,然後分配職責。

2、公式:程序=對象+交互

(1)思想層面:可模擬現實場景,更接近人類思維。

有利於梳理歸納,分析解決問題。

(2)技術層面:

高復用:對重複代碼封裝,重複利用。提高開發效率

高擴展:增加新的功能,不修改以前在代碼

高維護:代碼可讀性好,邏輯清晰,結構規整。

。類:抽象的概念,即生活中的類別

對象:類有具體實例,即歸屬於某個類別的“個體”

類是創建對象的模板

—-數據類型 :名詞類型的狀態

—-方法成員:動詞類型的形為

類與類形為不同對象與對象數據不同

類的語法:class 類名:

class che:

#數據成員

def __init__(self,name,chelun):#self是調用當前方法的對象地址

self.name=name

self.chelun=chelun

#形為成員

def chexing(self):

print(self.name+”開車”)

#創建對象:實際在調用_init_方法

qiche=che(“小橋車”,”更換”)#self:參數自動將對象地址傳入方法

#調用對象的形為

qiche.chexing()#self:參數自動將對象地址傳入方法

print(qiche.name)#self:參數自動將對象地址傳入方法

print(qiche.chelun)#self:參數自動將對象地址傳入方法

1、創建類並調用(列表反置)

class listpx:

def __init__(self,lista):

self.lista=lista

self.imte=0

self.ymte=0

def paixu(self):

for self.imte in range(len(self.lista)):

for self.ymte in range(self.imte + 1, len(self.lista)):

self.lista[self.imte], self.lista[self.ymte] = self.lista[self.ymte], self.lista[self.imte]

print(self.lista)

list01=[2,3,1,5,4]

listb=listpx(list01)

listb.paixu()

list02=[23,54,78]

listc=listpx(list02)

listc.paixu()

#調用規則:先給類變量傳值,再調用類方法。

Python中的面向對象(進階)

一、實例方法,類方法,靜態方法

我們首先寫一個類,裡面包含這三種方法。

可以看到,我們用到了兩個裝飾器。

我們用類和實例分別調用下類方法

我們用類和實例分別調用下靜態方法

靜態方法其實就是把一個普通的函數寫在類里,與直接在外層寫一個函數是一樣的,本質上是一個函數。

為了方便理解,我們分別打印下這些方法的類型

通過type()查看對象是方法還是函數

此外,還可以通過inspect模塊判斷某個對象是否是某種類型,返回布爾值。

用法

小Tips:概念理解

直接def定義的,我們叫做函數

把函數放到類里,我們叫做方法

方法可以通過裝飾器staticmethod轉為(放在方法里的)函數

繼承

一個類繼承另一個類時,會自動獲得另一個類的所有屬性和方法,被繼承的類稱之為父類,新類稱為子類。子類擁有父類所有的屬性和方法,並且可以定義自己的屬性和方法

我們以上邊的Rectangle類為父類來試一下

1)完全繼承

可以看到,子類完全繼承父類後,可以直接調用父類的所有方法。

2)部分繼承

部分繼承:繼承父類後,修改父類的同名方法

我們試一下,Square繼承Rectangle後,修改__init__()方法

3)拓展父類的方法

在保留父類中某個方法的代碼同時,對方法進行拓展

可以在方法中加入”super().方法名”來實現

4)@property

Python 面向對象的核心概念匯總

1)、將公共的屬性和方法放到父類中,自己只考慮特有的屬性和方法。

2)、覆蓋父類的方法即重寫父類方法,在運行中只會調用子類中重寫的方法不用調用父類中的方法。

3)、子類擁有一個父類叫作單繼承,子類可以擁有多個父類,並且具有所有父類的屬性和方法。

1)、指的是為不同的基礎形態(數據類型)提供着接口的能力,接口指的是函數和方法。

2)、顧名思義,多態就是多種表現形態的意思,它是一種機制,一種能力,而非某個關鍵詞。它在類的繼承中得以實現,在類的方法調用中得以體現。

3)、多態意味着變量並不知道引用的對象是什麼,根據引用對象的不同表現不同的行為方式。

4)、多態以封裝和繼承為前提,不同的子類對象調用相同的方法,產生不同的執行效果。它可以增加代碼的靈活度,以繼承和重寫父類的方法為前提,調用方法不會影響到類的內部設計

1)、通過組合技巧將一個對象作用變量保存在另一個對象中,可以模擬擁有關係。

2)、它是一種將對象或類組合成更複雜的數據結構或構件實現的方法。

3)、在組合中,一個對象可用於調用其他模塊中的成員函數,這樣一來,無需通過繼承就可以實現基本功能的跨模塊調用。

總結:

今天和大家分享的是面向對象編程的核心概念:封裝,抽象,多態、繼承、組合,可以結合代碼示例本地去運行着感受這些概念的含義。

Python之什麼叫面向對象

面向對象是向現實世界模型的自然延伸,這是一種“萬物皆對象”的編程思想。在現實生活中的任何物體都可以歸為一類事物,而每一個個體都是一類事物的實例。面向對象的編程是以對象為中心,以消息為驅動,所以程序=對象+消息。

面向對象有三大特性,封裝、繼承和多態。

封裝就是將一類事物的屬性和行為抽象成一個類,使其屬性私有化,行為公開化,提高了數據的隱秘性的同時,使代碼模塊化。這樣做使得代碼的復用性更高。

相關推薦:《Python視頻教程》

繼承則是進一步將一類事物共有的屬性和行為抽象成一個父類,而每一個子類是一個特殊的父類–有父類的行為和屬性,也有自己特有的行為和屬性。這樣做擴展了已存在的代碼塊,進一步提高了代碼的復用性。

如果說封裝和繼承是為了使代碼重用,那麼多態則是為了實現接口重用。多態的一大作用就是為了解耦–為了解除父子類繼承的耦合度。如果說繼承中父子類的關係式IS-A的關係,那麼接口和實現類之之間的關係式HAS-A。簡單來說,多態就是允許父類引用(或接口)指向子類(或實現類)對象。很多的設計模式都是基於面向對象的多態性設計的。

總結一下,如果說封裝和繼承是面向對象的基礎,那麼多態則是面向對象最精髓的理論。掌握多態必先了解接口,只有充分理解接口才能更好的應用多態。

python之面向對象

面向對象(OOP)是一種對現實世界理解和抽象的方法,對象的含義是指在現實生活中的具體事物, 一切皆對象 ,Python 是一門面向對象的語言,面向對象編程簡單來說就是一種 封裝代碼 的方式。

Python 中類的定義使用 class 關鍵字定義類,語法如下所示:

舉例,定義一個類 Cat

構造方法 init() 會在類實例化時自動調用。無論構造方法還是其他方法都需要將 self 作為第一個參數,它代表類的實例。

類創建好後,可以直接通過類名訪問屬性,格式為: 類名.屬性名 ,比如我們訪問 Cat 類的 color 屬性,如下所示:

創建對象也稱類的實例化,比如我們通過 Cat 類創建對象,如下所示:

創建好對象後,使用它訪問屬性和調用方法了,如下所示:

內部私有屬性和方法是可以被訪問和調用的。

我們來一起看個例子,如下所示:

輸出結果:

Python 支持類的繼承,而且支持多繼承,語法格式為:

示例如下所示:

如果繼承的父類方法不能滿足我們的需求,這時子類可以 重寫 父類方法,如下所示:

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

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-13 17:34
下一篇 2024-12-13 17:34

相關推薦

  • MQTT使用教程

    MQTT是一種輕量級的消息傳輸協議,適用於物聯網領域中的設備與雲端、設備與設備之間的數據傳輸。本文將介紹使用MQTT實現設備與雲端數據傳輸的方法和注意事項。 一、準備工作 在使用M…

    編程 2025-04-29
  • Python3.6.5下載安裝教程

    Python是一種面向對象、解釋型計算機程序語言。它是一門動態語言,因為它不會對程序員提前聲明變量類型,而是在變量第一次賦值時自動識別該變量的類型。 Python3.6.5是Pyt…

    編程 2025-04-29
  • Deepin系統分區設置教程

    本教程將會詳細介紹Deepin系統如何進行分區設置,分享多種方式讓您了解如何規劃您的硬盤。 一、分區的基本知識 在進行Deepin系統分區設置之前,我們需要了解一些基本分區概念。 …

    編程 2025-04-29
  • 寫代碼新手教程

    本文將從語言選擇、學習方法、編碼規範以及常見問題解答等多個方面,為編程新手提供實用、簡明的教程。 一、語言選擇 作為編程新手,選擇一門編程語言是很關鍵的一步。以下是幾個有代表性的編…

    編程 2025-04-29
  • Qt雷達探測教程

    本文主要介紹如何使用Qt開發雷達探測程序,並展示一個簡單的雷達探測示例。 一、環境準備 在開始本教程之前,需要確保你的開發環境已經安裝Qt和Qt Creator。如果沒有安裝,可以…

    編程 2025-04-29
  • 猿編程python免費全套教程400集

    想要學習Python編程嗎?猿編程python免費全套教程400集是一個不錯的選擇!下面我們來詳細了解一下這個教程。 一、課程內容 猿編程python免費全套教程400集包含了從P…

    編程 2025-04-29
  • Python煙花教程

    Python煙花代碼在近年來越來越受到人們的歡迎,因為它可以讓我們在終端里玩煙花,不僅具有視覺美感,還可以通過代碼實現動畫和音效。本教程將詳細介紹Python煙花代碼的實現原理和模…

    編程 2025-04-29
  • 使用Snare服務收集日誌:完整教程

    本教程將介紹如何使用Snare服務收集Windows服務器上的日誌,並將其發送到遠程服務器進行集中管理。 一、安裝和配置Snare 1、下載Snare安裝程序並安裝。 https:…

    編程 2025-04-29
  • 面向對象編程、類和對象

    面向對象編程(Object-Oriented Programming, OOP)是一種編程方法,它將現實世界中的事物抽象為對象(Object),對象的屬性和方法被封裝成類(Clas…

    編程 2025-04-29
  • Python畫K線教程

    本教程將從以下幾個方面詳細介紹Python畫K線的方法及技巧,包括數據處理、圖表繪製、基本設置等等。 一、數據處理 1、獲取數據 在Python中可以使用Pandas庫獲取K線數據…

    編程 2025-04-28

發表回復

登錄後才能評論