Python程式設計之理解物件

2021-08-23 12:39:42 字數 1392 閱讀 9232

1、python中的函式和類均是物件,體現在以下幾方面:

1)都可以賦值給乙個變數

2)可以新增到集合物件中

3)可以作為引數傳遞給函式

4)可以當作函式的返回值

如果乙個函式沒有return語句,則預設返回none

2、type,class,object之間的關係

我們在python中定義的所有class(類)均繼承至object,及object是python中所有類繼承的基類,可以稱之為頂層類,

type是乙個類,也是乙個物件,而object來自於type,可用__bases__檢視物件的父類,他們之間的關係如上圖,也可通過下面的程式來驗證:

從結果中可以看出,type的父類是object,object的型別是type,而type的型別又是type及是其自身,這樣便可以形成了乙個完整的類和物件的閉環 ,也從原理上解釋了為什麼說一切皆物件,如何這裡的type不理解,可以去看看c語言中的指標。

3、物件的三個特徵

4、python中的常見內建型別

none(全域性只有乙個)

數值迭代型別:list、bytes、bytearray、memoryview(二進位制序列)、range、tuple、str、array

序列型別

對映(dict)

集合:set、frozenset(不可修改的)

上下文管理型別:with語句

其它:模組型別、class和例項、函式型別、方法型別、**型別、object型別、type型別

5、鴨子型別與多型

6、抽象基類(abc模組)的使用場景

1)判斷某個類的型別(isinstance,這個方法會在它的物件原型鏈上查詢其父類)

2)需要設計乙個抽象基類,指定子類必須實現某些方法

6、物件常用操作

1)通過__dict__查詢物件部分屬性(自省機制)

2)通過dir()查詢物件屬性,這個方法會列出物件的所有屬性(自省機制)

7、上下文管理器協議

使用contextlib裝飾器優化後的上下文管理器

學習筆記之理解物件導向程式設計

物件導向程式設計在近些年來被更多的人接受 認可與推廣,當然是因為有著相比於面向過程程式設計顯而易見的優點。面向過程的程式設計的核心就在於過程,是按照步驟一步步直到解決問題,就像高效的生產線。但是這樣的過程被設計出來是為了解決目前的問題,想要解決其他問題,更改流程是很困難的,牽一髮而動全身。也就是說,...

python之理解 遞迴

古之欲明明德於天下者,先治其國 欲治其國者,先齊其家 欲齊其家者,先修其身 欲修其身者,先正其心 欲正其心者,先誠其意 欲誠其意者,先致其知,致知在格物。物格而後知至,知至而後意誠,意誠而後心正,心正而後身修,身修而後家齊,家齊而後國治,國治而後天下平。這是從林海峰部落格裡面copy的。很好的解釋了...

網路程式設計之理論篇

網路通訊作為網際網路的技術支援,已被廣泛應用在軟體開發中,無論是web,服務端,客戶端還是桌面應用,都是必須掌握的一門技術。在軟體開發層面實現遠端資料交換的程式設計技術。要熟悉網路程式設計,首先需要學習網路協議的相關知識。什麼網路協議呢?網路協議是為網路中進行資料交換定義的規則,以實現按此規範進行傳...