日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python面向对象学习_Python 初识面向对象#学习猿地

發布時間:2023/12/15 python 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python面向对象学习_Python 初识面向对象#学习猿地 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

> 面向對象編程——Object Oriented Programming,簡稱`OOP`,是一種**以對象為中心**的程序設計思想。

>

> 面向過程編程——Procedure Oriented Programming,簡稱`POP`,是一種**以過程為中心**的程序設計思想。

## 理解面向過程與面向對象思想

大家先思考一個問題:把大象裝進冰箱,需要幾步?

小品給出的答案:三步

第一步:打開冰箱門

第二步:把大象裝進去

第三步:關上冰箱門

##### 用面向過程去理解

> 上面給出的答案就是面向過程的,遇到問題后,分析解決問題的步驟,然后一步步去實現

##### 用面向對象去理解

> 是通過分析問題中需要的抽象模型,然后更具需要的功能分別去創建模型對象,最終由模型對象來完成程序

首先面向對象要解決這個問題,需要先建立出抽象模型,比如:打開冰箱門和關閉冰箱門,這都屬于一個冰箱的功能,大象走進去,這就是大象的功能。到此時我們就出現了兩個抽象模型,一個是冰箱,一個是大象。

冰箱具有 打開和關閉的功能,大象具有走路的能力。

分析到這里,就是面向對象的思想,具體完成的話,就是去創建冰箱和大象這兩個對象,最終完成這個程序

冰箱對象-開門,大象對象-走進冰箱,冰箱對象-關門

再思考一個問題,想吃清蒸魚怎么辦?

面向過程:

1. 買魚,買料

2. 殺魚和清理,并且腌制

3. 放鍋燒水

4. 把魚放進去,開始蒸

5. 十分鐘后開蓋,把魚端出來,澆汁

面向過程中想完成這個愿望,需要一步一步的去執行。

面向對象:

需要一個對象:大廚

告訴大廚,我想吃清蒸魚

面向對象就是調用對象去解決問題,具體的對象如何去解決呢?

大廚這個對象肯定也是一步步完成。但是對于我來說,就是調用了對象。而對象去完成這個過程。

當然了最終面向對象中是有面向過程的體現的。

### 面向過程和面向對象的區別和優缺點?

#### 一,面向過程

>? 面向過程的核心是過程,過程就是指解決問題的步驟。

優缺點:

+ 優點: 將負責的問題流程化,進而實現簡答化

+ 缺點:擴展性差(更新,維護,迭代)

總結:在去完成一些簡單的程序時,可以使用面向過程去解決。但是如果有復雜的程序或任務,而且需要不斷的進行迭代和維護,那么肯定是優先選擇面向對象的編程思想

#### 二,面向對象

> 面向對象的核心是對象,是一個特征和功能的綜合體

優缺點:

+ 優點:可擴展性高

+ 缺點:編程復雜度相對面向過程高一些。指的是計算機在執行面向對象的程序時的性能表現

### 后面如何去學習面向對象編程?

1. 理解面向對象編程的思想

2. 學習面向對象編程的語法

### 認識類與對象

類:類是對象的一個抽象的概念

對象(實例):對象就是由類的創建的實例

類和對象的關系就是 模具與鑄件的關系

1. 類是由對象總結而來的,總結的這個過程叫做抽象

2. 對象是由類具體實施出來的,這個過程叫做實例化

如果你現在有點迷糊,那你想一想,

+ 水果是一個對象還是一個類?

+ 汽車是一個對象還是一個類?

+ 手機是一個對象還是一個類?

再來想一個問題,我現在給大家上課,用的是一個筆記本電腦,

請問我當前正在使用的這個筆記本電腦是一個對象還是一個類?

筆記本電腦特征:金屬外殼,優美的外觀

筆記本電腦功能:給大家制作課程,編輯代碼,聽音樂。。。

## 面向對象編程的基本實現

> 如果需要實例一個對象,那么需要先抽象一個類

例如需要創建一個汽車對象

首先需要抽象一個汽車類:汽車類就相當于一個設計圖紙一樣。

由這個設計圖紙去創建(實例)出來的真實汽車就是一個對象

如何創建一個類,通過class關鍵字來定義一個類

示例:

```python

# 定義一個汽車的類

class Cart():

pass

'''

類名的書寫規范,建議使用駝峰命名法

大駝峰:MyCar XiaoMi

小駝峰:myCar xiaoMi

'''

```

類中需要聲明什么內容?

```

一個類有特征和功能兩個內容組成:

特征就是一個描述:顏色:白色,品牌:奧迪,排量:2.4 。。。

功能就是一個能力:拉貨,帶美女兜風。。。。

特征在編程中就是一個變量,在類中稱為 屬性

功能在編程中就是一個函數,在類中稱為 方法

類中屬性一般定義在前面,方法定義在后面

```

示例:

```python

# 定義一個汽車的類

class Cart():

# 屬性 ==> 特征 ==> 變量

color = '白色'? # 表示顏色屬性

brand = '奧迪'? # 表示品牌屬性

pailiang = 2.4 # 表示排列屬性

# 方法 ==> 功能 ==> 函數

def luohuo(self):

print('小汽車能拉貨')

def doufeng(self):

print('小汽車能兜風')

def bamei(self):

print('帶妹子去嗨。。。')

```

如何通過類實例化對象并使用?

```python

# 如何去使用這個類?

# 通過類實例化一個對象

aodiobj =? Cart()

# print(aodiobj,type(aodiobj))

# <__main__.cart object at>

# 調用對象的方法

aodiobj.bamei()

# 獲取對象的屬性

print(aodiobj.brand)

```

---

### 成員屬性和成員方法的操作

#### 對象操作成員

```

成員屬性:

訪問:? 對象.成員屬性名

修改:? 對象.成員屬性名法 = 新值。(此時等于給這個對象創建了一個自己的屬性)

添加:? 對象.新成員屬性 = 值 (此時是給這個對象自己新建了一個屬性)

刪除:? del 對象.成員屬性 (注意:只能刪除這個對象自己的屬性)

成員方法:

訪問:? 對象.成員方法名()

修改:? 對象.成員方法名 = func(此時等于給這個對象創建了一個自己的方法)

添加:? 對象.方法名 = func (此時是給這個對象自己新建了一個方法)

刪除:? del 對象.方法名 (注意:只能刪除這個對象自己的方法)

```

#### 類操作成員(不推薦)

```

成員屬性:

訪問:? 類名.成員屬性名

修改:? 類名.成員屬性名法 = 新值。(此時通過這個類創建的對象都具有這個屬性)

添加:? 類名.新成員屬性 = 值 (此時通過這個類創建的對象都具有這個屬性)

刪除:? del 類名.成員屬性 (注意:刪除這個類的屬性后,這個類創建的對象也沒有這幾個屬性了)

成員方法:

訪問:? 類名.成員方法名()

修改:? 類名.成員方法名 = func(此時通過類創建的對象都被修改)

添加:? 類名.方法名 = func (此時通過類創建的對象都被修改)

刪除:? del 類名.方法名 (注意:此時通過類創建的對象都被修改)

```

#### 總結

+ 一個類可以實例化出多個對象,每個對象在內存中都獨立存在的

+ 當通過類實例化對象時,并不會把類中的成員復制一份給對象,而去給對象了一個引用

+ 訪問對象成員的時候,如果對象自己沒有這個成員,對象會向實例化它的類去查找

+ 對象成員的添加和修改,都只會影響當前對象自己,不會影響類和其它對象

+ 刪除對象的成員時,必須是該對象自己具備的成員才可以,不能刪除類中引用的成員

+ 對類的成員操作,會影響通過這個類創建的對象,包括之前創建的。

----

#### `__del__`析構方法

```

__del__ 析構方法

觸發機制:析構方法會在對象被銷毀時自動觸發

作用:關閉一些開發的資源

注意:是對象被銷毀時觸發了析構方法,而不是析構方法銷毀了對象

對象會在哪些情況下被銷毀?

1。 當程序執行完畢,內存中所有的資源都會被銷毀釋放

2。 使用 del 刪除時

3。 對象沒有被引用時,會自動銷毀

```

示例:

> 定義一個類,完成一個日志的記錄

>? ? 調用這個對象的時候,傳遞一個日志信息

>? ? 這個對象會創建一個文件,開始寫入,并在最后關閉這個文件

```python

import time

class writeLog():

# 成員屬性

# 文件的路徑

fileurl = './'

# 日志文件的名稱

filename = '2019-09-19'

# 初識化? 打開文件

def __init__(self):

#完成文件的打開

print('初始化方法觸發類。完成文件的打開')

self.fileobj = open(self.fileurl+self.filename,'a+',encoding='utf-8')

# 寫日志的方法

def log(self,s):

print(f'把日志:{s} 寫入文件中')

# 析構方法

def __del__(self):

print('析構方法觸發了,關閉打開的文件')

# 在對象被銷毀時,關閉在初始化方法中打開的文件對象

self.fileobj.close()

```

掌握學習方法,不如會彎道超車!

學習猿地:成就自己的只需一套精品!

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的python面向对象学习_Python 初识面向对象#学习猿地的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。