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面向對象編程題?

這是一個面向對象編程的題目,可以考慮如下思路:

創建省份類,所包含的屬性為名稱,即省份名稱

創建地級市類,繼承省份類,所包含屬性(為考慮後續交易相關的操作)如下:

地級市名稱

所持有貨物數量

所持初始資金數量(為了計算利潤)

當前所持資金數量

供應商(這也是一個地級市類的對象)

從供應商處購買商品次數計次

賣給其他買家商品次數計次

其所包含的方法如下:

添加供應商(將供應商的引用添加至屬性「供應商」中)

購買一個商品:供應商貨物數量-1,所持資金數量+100,購買者貨物數量+1,所持資金數量-100,從供應商處購買商品次數計次+1

賣出一個商品(參數表:購買者):賣出者貨物數量-1,持有資金數量+110,購買者貨物數量+1,持有資金數量-110,賣給其他買家商品次數計次+1。若賣給其他買家商品次數計次對4取餘數為0,則:賣出者持有資金數量-110+70,供應商貨物數量+1,供應商所持資金數量-70

3. 創建主程序:創建一個省份和三個地級市對象,創建循環體,在循環中依次從供應商處購買商品,當購買次數超過4次後,向第三個買家出售商品。

具體代碼如下:

省份類

地級市類

地級市類——從供應商處購買一個商品

地級市類——賣出一個商品

主程序——創建對象

主循環——計算利潤

Python中的面向對象(進階)

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

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

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

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

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

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

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

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

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

用法

小Tips:概念理解

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

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

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

繼承

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

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

1)完全繼承

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

2)部分繼承

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

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

3)拓展父類的方法

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

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

4)@property

python為什麼是面向對象的

Python雖然是解釋型語言,但從設計之初就已經是一門面向對象的語言,對於Python來說一切皆為對象。正因為如此,在Python中創建一個類和對象是很容易的,當然如果習慣面向過程或者函數的寫法也是可以的,Python並不做硬性的限制。

Python的面向對象特徵如下:

封裝

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

繼承

類繼承:

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

多重繼承:

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

多態

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

相關推薦:《Python教程》以上就是小編分享的關於python為什麼是面向對象的的詳細內容希望對大家有所幫助,更多有關python教程請關注環球青藤其它相關文章!

python面向對象的問題

第二種相當於是局部變數,除了init函數外,其他的地方都不能訪問

第三種相當於是類的屬性,每個具體的對象有不同的值,在其他類中如果生成了對象b,如b=a(),使用b.aa可以訪問到。

第一種是定義了類的變數,所有的對象共享該變數,在其他類中使用a.aa可以訪問到,注意這裡a是類的名字,也可以通過每個對象訪問到,如b=a() c=a() ,則b.aa與c.aa及a.aa都是訪問的一個東西,值是一樣的。

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

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-11-14 03:04
下一篇 2024-11-14 03:04

相關推薦

  • Python中引入上一級目錄中函數

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

    編程 2025-04-29
  • Python列表中負數的個數

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

    編程 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內置的模塊datetime實現,示例代碼如下: from datetime imp…

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

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

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

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

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

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

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

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

    編程 2025-04-29
  • 蝴蝶優化演算法Python版

    蝴蝶優化演算法是一種基於仿生學的優化演算法,模仿自然界中的蝴蝶進行搜索。它可以應用於多個領域的優化問題,包括數學優化、工程問題、機器學習等。本文將從多個方面對蝴蝶優化演算法Python版…

    編程 2025-04-29

發表回復

登錄後才能評論