不可變物件,該物件所指向的記憶體中的值不能被改變。當改變某個變數時候,由於其所指的值不能被改變,相當於把原來的值複製乙份後再改變,這會開闢乙個新的位址,變數再指向這個新的位址。
可變物件,該物件所指向的記憶體中的值可以被改變。變數(準確的說是引用)改變後,實際上是其所指的值直接發生改變,並沒有發生複製行為,也沒有開闢新的出位址,通俗點說就是原地改變。
python 中,數值型別(int 和float)、字串str、元組tuple 都是不可變型別。而列表 list、字典 dict、集合
set 是可變型別。
is 判斷的是a 物件是否就是b 物件,是通過 id 來判斷的。
==判斷的是 a 物件的值是否和 b 物件的值相等,是通過 value 來判斷的。
魔法方法就是可以給你的類增加魔力的特殊方法,如果你的物件實現 (過載)了這些方法中的某乙個,那麼這個方法就會在特殊的情況下被 python 所呼叫,你可以定義自己想要的行為,而這一切都是自動發生的。 它們經常是兩個下劃線包圍來命名的(比如 init , lt ),python 的魔法方法是非常強大的,所以了解其使用方法也變得尤為重要!
init 構造器,當乙個例項被建立的時候初始化的方法。但是它並 不是例項化呼叫的第乙個方法。
new 才是例項化物件呼叫的第乙個方法,它只取下 cls 引數,並把 其他引數傳給 init 。 new 很少使用,但是也有它適合的場景,尤其 是當類繼承自乙個像元組或者字串這樣不經常改變的型別的時候。
call 允許乙個類的例項像函式一樣被呼叫 。
getitem 定義獲取容器中指定元素的行為,相當於 self[key] 。
getattr 定義當使用者試圖訪問乙個不存在屬性的時候的行為 。
setattr 定義當乙個屬性被設定的時候的行為 。
getattribute 定義當乙個屬性被訪問的時候的行為 。
將物件私有化,通過共有方法提供乙個讀取資料的介面
物件導向是相對於面向過程而言的。面向過程語言是一種基於功能分析的、以演算法為中心的程式設計方法;而物件導向是一種基於結構分析的、以資料為中心的程式設計思想。在物件導向語言中有乙個有很重要東西,叫做類。
物件導向有三大特性:封裝、繼承、多型。
物件導向 初識物件導向
面向過程思想 步驟清晰簡單,第一步做什麼,第二步做什麼.面向過程適合處理一些較為簡單的問題 物件導向思想 物以類聚,分類的思維模式,思考問題首先會解決問題需要分哪些類,然後對這些類進行單獨思考,最後才是對某個分類下的細節進行面向過程的思索 物件導向適合處理複雜的問題,適合處理需要多人協作的問題 對於...
物件導向程式設計01 面向過程 物件導向
前面12講我已經寫完了從零開始學j ase 慶祝完結撒花!那麼從今天開始正式步入物件導向程式設計。建議開啟本章之前先回顧 j ase010方法詳解和 j a變數與方法的呼叫 同類操作中與跨類操作中的對比 物件導向程式設計 oop object oriented programming 物件導向程式設...
物件導向過程與物件導向
物件導向過程與物件導向 1 程式的發展經歷了兩個階段 面向過程 物件導向。2 對於物件導向與面向過程可以用乙個例子解釋,如乙個木匠要做乙個盒子,那麼這個盒子的出發點會有兩種方式 物件導向 先想好要做的盒子,之後在去找相應的工具去做。面向過程 不去想要做什麼樣的盒子,隨需取工具。物件導向三大特徵 封裝...