本文目錄一覽:
- 1、Python中的面向對象(進階)
- 2、python之面向對象
- 3、Python編程 面向對象程序設計
- 4、python:第二部分:面向對象:面向對象object orinted
- 5、python支持面向對象嗎?
Python中的面向對象(進階)
一、實例方法,類方法,靜態方法
我們首先寫一個類,裡面包含這三種方法。
可以看到,我們用到了兩個裝飾器。
我們用類和實例分別調用下類方法
我們用類和實例分別調用下靜態方法
靜態方法其實就是把一個普通的函數寫在類里,與直接在外層寫一個函數是一樣的,本質上是一個函數。
為了方便理解,我們分別列印下這些方法的類型
通過type()查看對象是方法還是函數
此外,還可以通過inspect模塊判斷某個對象是否是某種類型,返回布爾值。
用法
小Tips:概念理解
直接def定義的,我們叫做函數
把函數放到類里,我們叫做方法
方法可以通過裝飾器staticmethod轉為(放在方法里的)函數
繼承
一個類繼承另一個類時,會自動獲得另一個類的所有屬性和方法,被繼承的類稱之為父類,新類稱為子類。子類擁有父類所有的屬性和方法,並且可以定義自己的屬性和方法
我們以上邊的Rectangle類為父類來試一下
1)完全繼承
可以看到,子類完全繼承父類後,可以直接調用父類的所有方法。
2)部分繼承
部分繼承:繼承父類後,修改父類的同名方法
我們試一下,Square繼承Rectangle後,修改__init__()方法
3)拓展父類的方法
在保留父類中某個方法的代碼同時,對方法進行拓展
可以在方法中加入”super().方法名”來實現
4)@property
python之面向對象
面向對象(OOP)是一種對現實世界理解和抽象的方法,對象的含義是指在現實生活中的具體事物, 一切皆對象 ,Python 是一門面向對象的語言,面向對象編程簡單來說就是一種 封裝代碼 的方式。
Python 中類的定義使用 class 關鍵字定義類,語法如下所示:
舉例,定義一個類 Cat
構造方法 init() 會在類實例化時自動調用。無論構造方法還是其他方法都需要將 self 作為第一個參數,它代表類的實例。
類創建好後,可以直接通過類名訪問屬性,格式為: 類名.屬性名 ,比如我們訪問 Cat 類的 color 屬性,如下所示:
創建對象也稱類的實例化,比如我們通過 Cat 類創建對象,如下所示:
創建好對象後,使用它訪問屬性和調用方法了,如下所示:
內部私有屬性和方法是可以被訪問和調用的。
我們來一起看個例子,如下所示:
輸出結果:
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支持面向對象嗎?
面向過程和面對對象是一種編程思想,不能說某某語言是不是面對對象或是面向過程,而是某某語言是否支持面對對象或面向過程。回歸主題,python可以支持面對對象,但也可以支持面向過程,即使不支持面向對象的語言,比如c語言,也可以用面對對象的思想寫程序。你可以理解面對對象為「模塊化」,恰巧python可以做到這一點,自己編寫的函數文件可以用import引用模塊,即使不使用class定義類,也可以實現面對對象的思想。
希望可以幫到你,謝謝!
Python是一種面向對象、解釋型計算機程序設計語言,由Guido van Rossum於1989年底發明,第一個公開發行版發行於1991年,Python 源代碼同樣遵循 GPL(GNU General Public License)協議。Python語法簡潔而清晰,具有豐富和強大的類庫。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/250540.html