11.類與對象

目錄

1. 創建類與對象示例

1.1 __init__ 初始化器:

1.2 __new__構造器

1.3 什么時候需要重寫 __new__?

1.4 init和new對比

2. 屬性

2.1 實例屬性

2.2 類屬性

3. 作用域命名約定

3.1 非公共屬性

3.2 公共屬性

3.3 名稱修飾

3.4 一眼看懂三種“可見性”

4. 方法

4.1 實例方法

4.2 類方法

4.3 靜態方法

4.4 普通方法、實例方法、類方法、靜態方法區別

5. 特性(property)

6. 特殊方法或魔法方法

6.1 解釋器偷偷調用的鉤子函數

6.2 示例 __call__ 

6.3 示例__eq__

7. 類裝飾器

7.1 示例和原理

7.2 主要使用場景

8. 對象結構模式匹配

8.1 示例

8.2 結構模式匹配 3 個維度


Python采用基于類的面向對象編程范式。在面向對象中,代碼被組織成類,可以從中創建對象。

我們可以把“類”和“對象”想成 模具產品

  1. 類(class) = 模具
    定義了產品長什么樣、能做什么,但本身還不是實物。

  2. 對象(object / instance) = 用模具倒出來的具體產品
    每個對象擁有獨立的數據,卻共享同一套行為。

1. 創建類與對象示例

class Dog:                       # 模具def __init__(self, name):    # 初始化(構造)方法self.name = name         # 屬性def bark(sel

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

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

相關文章

【js】Promise.try VS try-catch

前言JavaScript 正為 Promise 添加一個新的方法,使得處理異步函數更加清晰和安全。Promise.try 允許將任何函數包裝在 Promise 中,無論它是否異步。使用 Promise.try 可避免傳統 try/catch 結構與 Promise 鏈的混合使用,代碼更簡潔。try-catc…

MySQL-表的約束(上)

表的約束在 MySQL 中,表的約束(Constraints)用于確保數據庫中數據的完整性和一致性。它們定義了對表中數據的規則和限制,防止無效或不一致的數據被插入、更新或刪除。常見的 MySQL 表約束包括主鍵約束(PRIMARY KEY&…

Frida + FART 聯手:解鎖更強大的 Android 脫殼新姿勢

版權歸作者所有,如有轉發,請注明文章出處:https://cyrus-studio.github.io/blog/ Frida FART 聯手能帶來什么提升? 增強 FART 的脫殼能力:解決對抗 FART 的殼、動態加載的 dex 的 dump 和修復; 控制 FART…

TLS/SSL(傳輸層安全協議)

文章目錄一、核心概念二、為什么需要 TLS/SSL?三、工作原理與詳細流程握手步驟詳解:1.ClientHello & ServerHello:2.服務器認證 (Certificate, ServerKeyExchange):3.客戶端響應 (ClientKeyExchange, Finished):4.…

什么是 AWS 和 GCE ?

AWS 和 GCE 是兩種不同廠商提供的云計算服務,主要區別在于提供商和產品定位。AWS全稱:Amazon Web Services提供商:亞馬遜 (Amazon)簡介:全球最大的云計算平臺之一,提供完整的云服務,包括: 計算&…

水電站電動機絕緣安全 “不掉線”!在線監測方案筑牢發電保障

對水電站而言,消防水泵、深井水泵等輔助電動機是安全運行的 “關鍵配角”—— 它們常年處于備用狀態,又受潮濕環境影響,絕緣值降低易引發燒毀故障,而傳統定期檢測難以及時捕捉絕緣劣化趨勢,一旦啟動時出問題&#xff0…

【Datawhale之Happy-LLM】3種常見的decoder-only模型——Github最火大模型原理與實踐教程task07

Task07:第三章 預訓練語言模型PLM (這是筆者自己的學習記錄,僅供參考,原始學習鏈接,愿 LLM 越來越好?) 本篇介紹3種很典的decoder-only的PLM(GPT、LlaMA、GLM)。目前火&#x1f52…

【卷積神經網絡】卷積神經網絡的三大核心優勢:稀疏交互、參數共享與等變表示

1. 引言 卷積神經網絡(CNN)之所以在計算機視覺、語音識別等領域取得突破性進展,并非偶然。相比傳統的全連接神經網絡,CNN通過三個重要的思想來幫助改進機器學習系統:稀疏交互(sparse interactions)、參數共享(parameter sharing)、等變表示(equivariant representations)。…

網絡共享協議

網絡共享協議是用于在計算機網絡中實現資源共享和數據傳輸的規則或標準。常見的共享協議包括文件共享、打印機共享、互聯網連接共享等。SMB(Server Message Block 服務器消息塊)SMB是一種網絡共享協議,主要用于局域網中實現不同設備之間的文件…

MD5加密算法詳解與實現

MD5加密算法詳解與實現 什么是MD5加密? MD5(Message-Digest Algorithm 5)是一種廣泛使用的密碼散列函數,可以產生一個128位(16字節)的哈希值,通常用32位的十六進制數表示。MD5由Ronald Rivest在…

(nice!!!)(LeetCode 每日一題) 3025. 人員站位的方案數 I (排序)

題目:3025. 人員站位的方案數 I 思路:排序,時間復雜度0(n^2)。 將數組points里的元素先按橫坐標x升序排序,縱坐標y降序排序。第一層for循環枚舉左上角的點,第二層for循環枚舉右下角的點。細節看注釋。 C版本&#xff…

可可圖片編輯 HarmonyOS(4)圖片裁剪

可可圖片編輯 HarmonyOS(4)圖片裁剪-canvas 前言 可可圖片編輯 實現了圖片的裁剪功能,效果如圖所示。這里的核心技術是使用了canvas。 Canvas 入門 Canvas提供畫布組件,用于自定義繪制圖形,開發者使用CanvasRenderi…

怎么用PS制作1寸證件照(已解決)

方法/步驟一、按住鍵盤上的“Ctrl”“O”打開你要制作的照片二、點擊裁剪工具 (調整為寬:2.5cm,高:3.5cm,分辨率:300像素),設置之后直接框選出需要剪切保留的位置(使人物居正中), 然后按上面的“√”,以便確認剪裁三、…

Qt libcurl的下載、配置及簡單測試 (windows環境)

Qt libcurl的下載、配置及簡單測試引言一、libcurl下載二、在Qt Creator中配置三、簡單測試引言 curl(Client URL)是一個開源的命令行工具和庫,用于傳輸數據支持多種協議(如HTTP、HTTPS、FTP、SFTP等)。其核心庫libcur…

【Python語法基礎學習筆記】競賽常用標準庫

前言此系列筆記是撥珠自己的學習筆記,自用為主,學習建議移步其他大佬的專門教程。math庫Python 的 math 庫是標準庫之一,提供了大量數學運算相關的函數,適用于基礎數學計算、科學計算等場景。下面詳細介紹其使用方法及常用功能&am…

我的項目我做主:Focalboard+cpolar讓團隊協作擺脫平臺依賴

文章目錄前言1. 使用Docker本地部署Focalboard1.1 在Windows中安裝 Docker1.2 使用Docker部署Focalboard2. 安裝Cpolar內網穿透工具3. 實現公網訪問Focalboard4. 固定Focalboard公網地址前言 “項目管理軟件又漲價了!“小團隊負責人小林發愁——剛習慣操作邏輯&…

【3D 入門-4】trimesh 極速上手之 3D Mesh 數據結構解析(Vertices / Faces)

【3D入門-指標篇上】3D 網格重建評估指標詳解與通俗比喻【3D入門-指標篇下】 3D重建評估指標對比-附實現代碼【3D 入門-3】常見 3D 格式對比,.glb / .obj / .stl / .ply Mesh 數據結構解析 1. Vertices(頂點) original_vertices mesh_ful…

無需服務器,免費、快捷的一鍵部署前端 vue React代碼--PinMe

作為前端的開發,有時候想部署一個項目真的是很“受氣”,要不就是找運維,或者后端,看別人的時間,或者走流程。 現在,有這么一個神器PinMe, 以前部署項目:自己買服務器?域名、 SSL、N…

【LeetCode_26】刪除有序數組中的重復項

刷爆LeetCode系列LeetCode26題:github地址前言題目描述題目與思路分析代碼實現算法代碼優化LeetCode26題: github地址 有夢想的電信狗 前言 本文介紹用C實現leetCode第26題題目鏈接:https://leetcode-cn.com/problems/remove-duplicates-…

CMake構建學習筆記23-SQLite庫的構建

1. 構建思路 在前文中構建了大量的庫包程序(參看CMake構建學習筆記-目錄)之后,可以總結一下在Windows下使用腳本構建程序的辦法: 使用CMake構建。這是目前最通用最流行的構建方式,大部分C/C程序都在逐漸向這個方向轉…