python——面向對象編程

一、編程思想

面向過程編程(典型:c語言):是一種以過程為中心的編程思想。它強調流程化、線性化、步驟化的思考方式,實現思路就是函數。

面向對象編程:強調整體性和差異性。它將任何事物看做一個統一整個,行為的多樣性和多態性,還有程序可擴展性。面向對象四大特征:抽象,封裝,繼承,多態。

二、類和對象

其實是一類事物的統稱或概況,是一種歸納,類是對象抽象出來的概念。

對象就是現實真實存在的,可以具體來描述。

三、類的創建

語法:

class ??類名:

????????類的屬性(特征)

????????類的方法(行為)

說明:

  • 類名稱、類屬性、類方法都屬于python標識符,需要遵守標識符規范
  • 類屬性本質就是變量
  • 類方法本質就是函數

1、類的構造方法?

1)類中構造方法名稱都是固定的。只能是?__init__ (init左右兩邊是雙下劃線),名稱不可以修改。如果在類定義時候添加這個構造方法,每當創建類的對象時(類實例化),python解釋器會自動調用該構造方法。構造可以包含多個參數,但是第一參數必須包含self參數。(self是python中默認寫法)。

2)構造方法不能加返回值(構造方法中,不能使用return語句)。

3)當前類中是否編寫構造方法,實例化類的對象時,默認都會調用構造方法。python類的構造方法有且只有一個。

4)構造方法作用:

  1. 用來實例化類
  2. 用來初始化類的屬性

2、類的析構方法

析構方法作用:用于資源的回收,釋放對象所占用的資源。

析構方法注意事項:

析構方法名稱是固定。只能是__del__(del左右兩邊是雙下劃線),不能修改。

若在類中定義該方法,每當創建一個類的對象時,使用完成后,python解釋器自動調用析構方法。

四、self的含義

self表示類實例化的對象本身,誰調用類中方法、屬性,self就表示誰。

總結:

  1. self這個參數不需要手動進行傳參,當某個對象調用方法時,python解釋器會自動把該對象本身作為參數傳遞給self這個形參。
  2. self也可以改名稱,self只是python中默認寫法。一般都不會修改。

五、面向對象編程的三大特征

1、封裝

定義:封裝是隱藏對象的屬性和方法實現細節,對外部僅僅提供公共訪問的方式。

2、繼承

繼承就是子類繼承父類的屬性(特征)和方法(行為),使得子類具有父類的相同屬性和方法。當然,子類還可有個性屬性,個性方法。

繼承好處:

  1. 繼承能夠提升代碼的重用率,編寫一個類,可以在多個子類中直接使用;
  2. 能夠有效進行代碼管理。當某個類有問題需要修改時,需要修改這個類中方法即可,其他子類無需修改。

如何實現繼承?

繼承是一種創建新類的方式。當我們定義一個類的時候,可以繼承某個現有的類。

語法:

class ??子類名稱(父類名稱):

????????pass

多繼承:

?子類同時可以繼承多個父類。

語法:

class ??子類(父類1,父類2,父類3,...):

????????pass

3、多態

作用:具有不同功能的函數可以使用相同的函數名,這樣就可以用一個函數名調用不同內容的函數。

六、實例

# 對象:計算器
# 功能:+-*/清零
class Caculator:def __init__(self,a,b):self.numa=int(a)self.numb=int(b)def add(self):print(f'{self.numa}+{self.numb}={self.numa+self.numb}')def sub(self):print(f'{self.numa}-{self.numb}={self.numa-self.numb}')def mul(self):print(f'{self.numa}*{self.numb}={self.numa*self.numb}')def div(self):print(f'{self.numa}/{self.numb}={self.numa/self.numb}')def cl(self):return 0def run(self):print('歡迎使用計算器')while True:choice=int(input('請輸入功能:1加2減3乘4除5清零6退出系統'))if choice==1:self.add()elif choice==2:self.sub()elif choice==3:self.mul()elif choice==4:self.div()elif choice==5:self.cl()elif choice==6:exit=input('您是否確認退出 y是,n否')if exit=='y':print('歡迎下次訪問')breakelse:warn = input("您的輸入非法,是否重新輸入:y是,n否")if warn == "n":print("歡迎下次使用!")breakreturn Falseif __name__ == '__main__':while True:print('歡迎使用計算器')data1 = int(input('請輸入第一個操作數據'))data2 = int(input('請輸入第二個操作數據'))use=Caculator(data1,data2)use.run()continueexit = input('您是否確認退出 y是,n否')if exit == 'y':print('歡迎下次訪問')break

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/78209.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/78209.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/78209.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

宿主機和容器 ping 不通域名解決方法

目錄 一、問題描述 二、宿主機解決方法 三、容器解決辦法 一、問題描述 宿主機是Ubuntu,在宿主機上 ping 不通域名:xxxx.cn,但是個人電腦能 ping 通。 同時宿主機上的啟動的k8s容器也無法ping通。 二、宿主機解決方法 ①編輯文件&#xff…

windows作業job介紹

提示:文章寫完后,目錄可以自動生成,如何生成可參考右邊的幫助文檔 文章目錄 前言一、作業job是什么?二、使用步驟1.代碼示例 總結 前言 提示:這里可以添加本文要記錄的大概內容: winapi網站: h…

ESG跨境電商如何為國內的跨境電商企業打開國外的市場

現在不管是國內還是國外,做電商的企業都非常的多,那么既然有這么多大電商公司,就要有為這些電商公司提供服務的公司,這就是ESG,它是專門為跨境電商服務的公司,那么這家公司的主要業務是什么呢?它…

龍虎榜——20250425

指數依然在震蕩,等待方向選擇,整體量能不搞但個股紅多綠少。 2025年4月25日龍虎榜行業方向分析 一、核心主線方向 綠色電力(政策驅動業績彈性) ? 代表標的:華銀電力(綠電運營)、西昌電力&…

大數據學習(112)-HIVE中的窗口函數

🍋🍋大數據學習🍋🍋 🔥系列專欄: 👑哲學語錄: 用力所能及,改變世界。 💖如果覺得博主的文章還不錯的話,請點贊👍收藏??留言📝支持一…

【MySQL】MySQL索引與事務

目錄 前言 1. 索引 (index) 1.1 概念 1.2 作用 1.3 使用場景 1.4 索引的相關操作 查看索引 創建索引 刪除索引 2. 索引背后的數據結構 2.1 B樹 2.2 B+樹的特點 2.3 B+樹的優勢 3. 事務 3.1 為什么使用事務 3.2 事…

python21-循環小作業

課程:B站大學 記錄python學習,直到學會基本的爬蟲,使用python搭建接口自動化測試就算學會了,在進階webui自動化,app自動化 循環語句小作業 for-in作業斐波那契 for 固定數值計算素數字符統計數字序列range 函數 水仙花…

深度學習小記(包括pytorch 還有一些神經網絡架構)

這個是用來增加深度學習的知識面或者就是記錄一些常用的命令,會不斷的更新 import torchvision.transforms as transforms toPIL transforms.ToPILImage()#可以把tensor轉換為Image類型的 imgtoPIL(img) #利用save就可以保存下來 img.save("/opt/data/private/stable_si…

Neo4j 可觀測性最佳實踐

Neo4j 介紹 Neo4j 是一款領先的圖數據庫管理系統,采用圖數據模型來表示和存儲數據。它以節點、關系和屬性的形式組織數據,節點代表實體,關系表示節點間的連接,屬性則為節點和關系附加信息。Neo4j 使用 Cypher 查詢語言&#xff0…

算法訓練營第三十天 | 動態規劃 (三)

提示:文章寫完后,目錄可以自動生成,如何生成可參考右邊的幫助文檔 文章目錄 一、01背包問題理論基礎(一)動態規劃五部曲確定dp數組以及下標的含義確定遞推公式初始化dp數組確定遍歷順序 二、01背包問題理論基礎&#…

玩機搞機基本常識-------小米OLED屏幕機型怎么設置為永不休眠_手機不息屏_保持亮屏功能 拒絕“燒屏” ?

前面在幫一位粉絲解決小米OLED機型在設置----鎖屏下沒有永不休眠的問題。在這里,大家要明白為什么有些小米機型有這個設置有的沒有的原因。區分OLED 屏幕和 LCD屏幕的不同。從根本上拒絕燒屏問題。 OLED 屏幕的一些優缺點💝💝💝 …

PostgreSQL使用LIKE右模糊沒有走索引分析驗證

建表&數據初始化可參考PostgreSQL 分區表——范圍分區SQL實踐 背景: 給t_common_work_order_log的handle_user_name新建索引后,使用LIKE右模糊匹配查詢時,發現走的全表掃描 CREATE INDEX order_log_handle_user_name_index ON t_commo…

【vue】【element-plus】 el-date-picker使用cell-class-name進行標記,type=year不生效解決方法

typedete&#xff0c;自定義cell-class-name打標記效果如下&#xff1a; 相關代碼&#xff1a; <el-date-pickerv-model"date":clearable"false":editable"false":cell-class-name"cellClassName"type"date"format&quo…

《Learning Langchain》閱讀筆記8-RAG(4)在vector store中存儲embbdings

什么是 vector store&#xff1f; 與專門用于存儲結構化數據&#xff08;如 JSON 文檔或符合關系型數據庫模式的數據&#xff09;的傳統數據庫不同&#xff0c;vector stores處理的是非結構化數據&#xff0c;包括文本和圖像。像傳統數據庫一樣&#xff0c;vector stores也能執…

用api的方式調用本地下載好的大模型(以llama為例,不是ollama!!!)

目錄 1、創建虛擬環境2、激活虛擬環境3、安裝相關庫4、編寫腳本&#xff08;test.py&#xff09;調用腳本5、bash中測試通信完美結果 1、創建虛擬環境 conda create -n myenv python3.12 -y2、激活虛擬環境 conda activate myenv3、安裝相關庫 pip install vllm fastapi uvi…

算力網絡(CFN)在跨校聯合科研中的應用:安全性挑戰與聯邦調度實踐

引言&#xff1a;科研協作的算力困境 上海交通大學與麻省理工學院聯合開展的高能物理模擬實驗&#xff0c;因算力資源分配不均導致部分節點連續72小時處于空轉狀態。這個典型案例揭示了當前跨機構科研協作的痛點&#xff1a;?算力資源無法實現安全可信的細粒度共享?。算力網…

高防IP+CDN組合:電商大促的“雙保險”防護方案

引言 電商大促期間&#xff0c;平臺流量呈爆發式增長&#xff0c;既要應對瞬時激增的訪問量&#xff0c;又要防范黑客趁機發起的DDoS攻擊、惡意爬蟲等威脅。單一防護手段往往難以兼顧性能與安全&#xff0c;而高防IPCDN組合通過“流量清洗加速分發”的雙重機制&#xff0c;為電…

# 構建詞匯表:自然語言處理中的關鍵步驟

構建詞匯表&#xff1a;自然語言處理中的關鍵步驟 在自然語言處理&#xff08;NLP&#xff09;任務中&#xff0c;詞匯表&#xff08;Vocabulary&#xff09;是文本數據預處理的核心組件之一。它將文本中的單詞或字符映射為數值索引&#xff0c;從而讓計算機能夠理解和處理語言…

SQL進階知識:七、數據庫設計

今天介紹下關于數據庫設計的詳細介紹&#xff0c;并結合MySQL數據庫提供實際例子。 數據庫設計是確保數據庫能夠高效、安全地存儲和管理數據的關鍵環節。良好的數據庫設計可以提高查詢性能、減少數據冗余、確保數據完整性&#xff0c;并簡化數據維護。以下是關于數據庫設計的詳…

python如何取消word中的縮進

在python-docx中&#xff0c;取消縮進可以通過將相應的縮進屬性設置為None或0來實現。以下是取消不同類型縮進的方法&#xff1a; 取消左縮進 from docx import Documentdoc Document(existing_document.docx)for paragraph in doc.paragraphs:# 取消左縮進paragraph.paragr…