Python進階_I/O進階學習筆記_1.抽象、面向對象、class/object/type

来源:https://www.cnblogs.com/besttr/archive/2019/08/08/11318699.html
-Advertisement-
Play Games

前言: 是自己在學習python進階IO學習視頻的時候的理解和筆記,因為很多都是本菜鳥學習時候的自己的理解,有可能理解有誤。 Content: - 抽象的概念和麵向對象的概念?想要大概瞭解python的面向對象需要註意哪些知識點? - 由type、object、class來瞭解python對象的機制 ...


前言:

是自己在學習python進階IO學習視頻的時候的理解和筆記,因為很多都是本菜鳥學習時候的自己的理解,有可能理解有誤。

Content:

- 抽象的概念和麵向對象的概念?想要大概瞭解python的面向對象需要註意哪些知識點?

- 由type、object、class來瞭解python對象的機制和特性

- python提供了哪些常用的內置類型?(被抽象成類)

一  抽象和麵向對象和類

    在python基礎教程書中,有一章名字是抽象,在學習的時候,我還曾經把這裡面抽象的概念和後面抽象基類的概念弄混淆。

    1.抽象的概念

    從具體事物抽出、概括出它們共同的方面、本質屬性與關係等,而將個別的、非本質的方面、屬性與關係捨棄,這種思維過程,稱為抽象。 --baidu

 在編程中,最簡單的抽象概念就是電腦能理解的一步一步的計算步驟抽象成類或者函數來進行調用,方便人進行抽象理解也方便重用(過程抽象)。

    最開始的編程歷史中就和我們初學編程一樣,都是過程抽象(結構化設計方法),但是經過發展慢慢發現僅僅是結構化設計已經滿足不了我們了,於是有了對面向對象的需求。

    2.面向對象的概念

    面向對象是一種對現實世界理解和抽象的方法,是電腦編程發展到一定階段後,產生的一種軟體開發方法。 --baidu

    面向對象中的對象:對象是人們要進行研究的任何事物,從最簡單的整數到複雜的飛機等均可看作對象,它不僅能表示具體的事物,還能表示抽象的規則、計劃或事件。 --baidu

    https://baike.baidu.com/item/%E9%9D%A2%E5%90%91%E5%AF%B9%E8%B1%A1/2262089?fr=aladdin#2

    三大特性:封裝、繼承、多態。

    3.類的概念

    具有相同特性和行為的對象的抽象就是類。對象的抽象是類,類的具體是對象。類有屬性和操作。

    4.python面向對象的設計

    1、2、3中算是編程中的基本概念吧,python中的面向對象設計理念和其他靜態語言還是有所區別的。

    a)python面向對象方法中一些比較重要的知識點(不詳解)

        鴨子類型、抽象基類、繼承的時候的查找演算法和super函數、靜態方法、類方法、實例方法、python的數據封裝和私有屬性

    b)python中一切皆對象,類和函數也是對象。

    c)  類和函數在python中作為對象有哪些特質?

        - 可以賦值給一個變數

        - 可以添加到集合對象中

        - 可以作為參數傳遞給函數

        - 可以當作函數的返回值

 

二  type、object和class

       在看這段之前,需要先看python基礎明白繼承和實例的概念,還有父類和基類。

  1.type可以用來返回一個對象的類型

         a)當a是普通int、str類型時

           

這個結果很好玩,可以發現1的類型是int,int的類型是type。還有type的類型竟然也是type。

可以得出 type類生成了int類,int類(也是對象)生成了 a這個實例

也就是 type--》class--》object

b)如果當a是一個自定義類的時候呢?

a是Student類型,Student是type類型

所以可以得出  type是用來生成類對象的,所有的類都是type類。包括list、dict等也是的。

邏輯:類是type(自己也是個類)的對象,其他的類型是類生成的對象

2.object是所有類的基類,包括也是type這個類的基類

object是最頂層的基類,所有的類最後推到都是繼承object類的。

發現type是object類的子類的,那object呢?   type繼承了object類, object是由type生成的對象。兩者成為了迴圈。 而且object是最頂層的類,再往上就沒有類了。   總結:type、object和class的關係為:
您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 下載NEditor 放在 vue 項目下麵 public 文件中。 安裝 vue-neditor-wrap 執行命令 npm install vue-neditor-wrap 代碼使用 <VueNeditorWrap ref="VueNeditorWrap" v-model="content" :c ...
  • 摘要: 理解函數式編程。 作者:前端小智 原文: "JS中函數式編程基本原理簡介" "Fundebug" 經授權轉載,版權歸原作者所有。 在長時間學習和使用面向對象編程之後,咱們退一步來考慮系統複雜性。 在做了一些研究之後,我發現了函數式編程的概念,比如不變性和純函數。這些概念使你能夠構建無副作用的 ...
  • jTopo 幫助說明網站 http://www.jtopo.com/index.html 使用例子: http://www.jtopo.com/demo/helloworld.html 不建議直接安裝 github 上的代碼,因為代碼版本不是最新,有部分功能未實現。 下載最新的js類庫文件放到 vu ...
  • vis.js 網站 https://visjs.org/ vs code 下安裝命令 npm install vis-network 在vue 下引入 vis-network組件 const vis = require("vis-network/dist/vis-network.min.js"); ...
  • ## DOM簡單學習:為了滿足案例要求 * 功能:控制html文檔的內容 * 獲取頁面標簽(元素)對象:Element * document.getElementById("id值"):通過元素的id獲取元素對象 * 操作Element對象: 1. 修改屬性值: 1. 明確獲取的對象是哪一個? 2.... ...
  • 單例模式介紹 單例模式,是為了確保在整個軟體體統中,某個類對象只有一個實例,並且該類通常會提供一個對外獲取該實例的public方法(靜態方法)。 比如日誌、資料庫連接池等對象,通常需要且只需要一個實例對象,這就會使用單例模式。 單例模式的八種模式 餓漢式(靜態常量) 餓漢式(靜態代碼塊) 懶漢式(線 ...
  • 設計模式介紹 設計模式是程式員在面對同類軟體工程設計問題所總結出來的有用的經驗,模式不是代碼,而是某類問題的通用解決方案, 設計模(Design pattern)代表了最佳的實踐。這些解決方案是眾多軟體開發人員經過相當長的一段時間的試驗和錯誤總結出來的。 設計模式的本質提高 軟體的維護性,通用性和擴 ...
  • [toc] 前言 適配器模式是最為普遍的設計模式之一,它不僅廣泛應用於代碼開發,在日常生活里也很常見。比如筆記本上的電源適配器,可以使用在110~ 220V之間變化的電源,而筆記本還能正常工作,這就是適配器模式最直接的例子,同時也是其思想的體現,簡單的說,適配器模式就是把一個類(介面)轉換成其他的類 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...