摘要:首發于微信公眾號脾氣豬轉摘需保留公眾號和來源文字有點長,對于不想看文字的朋友,可以去這里看視頻,視頻可能更好理解本節課我們學習類的屬性知識點類的屬性,是可以被它的實例共享的首先,我們使用鴨類設計方案,來實例化幾個對象為了減少代碼量,使用新的
首發于 微信公眾號: 脾氣豬
轉摘需保留公眾號和來源
文字有點長,對于不想看文字的朋友,可以去這里看視頻,視頻可能更好理解https://www.piqizhu.com/v/D8V9Wpkd1Wr
本節課我們學習類的屬性
知識點:類的屬性,是可以被它的實例共享的
首先, 我們使用鴨類設計方案,來實例化幾個對象
# 為了減少代碼量,使用新的鴨類設計方案 class 鴨類設計方案: type_name = "鴨" def 吃東西(self): print("開始用嘴巴吃東西") def 跑(self): print(self.type_name, ":用2條 后肢 跑") def 叫(self): print("嘎嘎嘎") a = 鴨類設計方案() b = 鴨類設計方案() c = 鴨類設計方案()
然后,讓我們來打印下他們3個的type_name屬性
print(a.type_name, b.type_name, c.type_name) # 輸出 # 鴨 鴨 鴨
我們看到,他們都輸出了 鴨,
是的,要訪問一個對象的屬性,格式是 對象名.屬性
對象名 后面跟了一個 英文句號.
這里的點 . 你可以理解為 的
a.老婆 == a的老婆 意思是相等的
共享類的屬性默認情況下,這3個對象,從類那里繼承了type_name這個屬性,所以,我們打印出的是鴨
接著,我們來修改下 type_name的值,然后打印修改后的值
鴨類設計方案.type_name = "www.piqizhu.com" # 修改為一個網址 print(a.type_name, b.type_name, c.type_name) # 輸出 # www.piqizhu.com www.piqizhu.com www.piqizhu.com
我們發現, a, b, c這3個對象的type_name值,也跟著變了
這說明,他們會共享 類的屬性
多帶帶修改對象的屬性接著,讓我們來修改下 對象a的type_name (注意,我們這里是修改對象a,而不是修改類,要搞清楚類和對象的區別)
a.type_name = "微信公眾號: 脾氣豬" # 修改對象a的屬性 print(a.type_name, b.type_name, c.type_name) # 輸出 # 微信公眾號: 脾氣豬 www.piqizhu.com www.piqizhu.com
發現了沒,a對象的type_name已經成功被我們修改了
這說明,我們可以多帶帶的修改某個對象的屬性
現在,我們再來修改下 類的type_name
鴨類設計方案.type_name = "鴨子" # 修改為 鴨子 print(a.type_name, b.type_name, c.type_name) # 輸出 # 微信公眾號: 脾氣豬 鴨子 鴨子
大家發現了嗎? 這次我們修改類的type_name屬性,對象b和c被修改了, 而對象a,卻沒有被修改!
這說明什么? 說明對象a的type_name屬性 已經不受控制了,可以擺脫類的控制了
那么對象a的type_name 是怎么擁有這種能力的呢?
因為上面我們給a的type_name 多帶帶進行了賦值,把它改成了微信公眾號: 脾氣豬
在對a的type_name完成修改后,a的type_name便有了自我意識,可以自己掌控自己,不再受到類的控制了
現在讓我們把對象b和c的type_name也喚醒吧
b.type_name = "學Python" c.type_name = "到脾氣豬" print(a.type_name, b.type_name, c.type_name) # 輸出 # 微信公眾號: 脾氣豬 學Python 到脾氣豬
接著,讓我們再來通過類,操作對象的屬性試試?
鴨類設計方案.type_name = "鴨子" # 修改為 鴨子 print(a.type_name, b.type_name, c.type_name) # 輸出 # 微信公眾號: 脾氣豬 學Python 到脾氣豬
咦! 居然無法通過類,操作對象的屬性了,對象a, b, c的type_name屬性果然不受到類的控制了
由于Python這門語言,是一個動態的,很寬松的語言,所以,我們可以隨時很方便的給類添加屬性
我們的鴨類設計方案,已經有了一個type_name屬性,我們給它增加一個age屬性試試
鴨類設計方案.age=99 # 動態的 增加age屬性 a.age = 100 # 讓對象a擁有自主能力 print(鴨類設計方案.age, a.age, b.age, c.age) # 輸出 # 99 100 99 99
方便吧! 不要濫用哦!
本節課,主要講了 類的屬性 默認情況會被 這個類實例化的所有對象共享, 除非某個對象,自己對這個屬性,進行了修改,否則,屬性的值,會一直和類保持同步
那么, 這個特性有啥用呢? 下下節課 揭曉
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/43721.html
摘要:一面向對象的概念什么是面向對象世間萬物皆對象,抽象的也是對象,一切可見或不可見都是對象對象的基本組成對象包含兩個部分對象的組成元素是對象的數據模型,用于描述對象的數據又稱為對象的屬性,或者對象的成員變量對象的行為是對象的行為模型,用于描述對 一、面向對象的概念 1.1 什么是面向對象(object oriented) ?????世間萬物皆對象,抽象的也是對象,一切可見或不可見都是對象 ...
摘要:例如汽車這個名詞可以理解為汽車的總類,但這輛寶馬汽車則是一個具體的汽車對象。當在類成員方法內部調用的時候,可以使用偽變量調用當前對象的屬性。在面向對象中則被稱之為方法。 簡述 現在大伙都在講面向對象編程,但是我們也得先找著一個對象是不?不然怎么面向對象?怎么編程? --- 笑話一則,但是理不虧,要搞P面向對象編程,我們起碼要先搞懂對象(還有類)是什么?只有了解它,理解它,你才能駕馭它。...
摘要:二面向對象有什么特征面向對象的主要特征有抽象繼承封裝和多態。析構函數析構函數是在引入的,它的作用與調用時機和構造函數剛好相反,它在對象被銷毀時自動執行。 PHP面試專欄正式起更,每周一、三、五更新,提供最好最優質的PHP面試內容。PHP中面向對象常考的知識點有以下7點,我將會從以下幾點進行詳細介紹說明,幫助你更好的應對PHP面試常考的面向對象相關的知識點和考題。整個面向對象文章的結構涉...
摘要:面試專欄正式起更,每周一三五更新,提供最好最優質的面試內容。繼上一篇面試常考內容之面向對象發表后,今天更新面向對象的最后一篇。面向對象的主要特征為封裝繼承多態。為了提高內聚性減少引起變化,單一原則是低耦合高內聚的面向原則上的引申。 PHP面試專欄正式起更,每周一、三、五更新,提供最好最優質的PHP面試內容。繼上一篇PHP面試常考內容之面向對象(2)發表后,今天更新面向對象的最后一篇(3...
摘要:是一種典型的面向對象編程語言。這篇文章主要是來初步理解一下面向對象的思維為下面的內容先給一個基礎。針對面向對象編程的更多內容,會在后面的文章里面詳細解釋。他們都稱之為對象。之后,我們再用編程語言,把這種映射編寫出來,就是的面向對象編程啦。 showImg(https://segmentfault.com/img/remote/1460000012983458?w=900&h=500);...
摘要:很多情況下,通常一個人類,即創建了一個具體的對象。對象就是數據,對象本身不包含方法。類是相似對象的描述,稱為類的定義,是該類對象的藍圖或原型。在中,對象通過對類的實體化形成的對象。一類的對象抽取出來。注意中,對象一定是通過類的實例化來的。 showImg(https://segmentfault.com/img/bVTJ3H?w=900&h=385); 馬上就要到七夕了,離年底老媽老爸...
閱讀 1176·2021-10-11 10:59
閱讀 1963·2021-09-29 09:44
閱讀 853·2021-09-01 10:32
閱讀 1424·2019-08-30 14:21
閱讀 1870·2019-08-29 15:39
閱讀 2973·2019-08-29 13:45
閱讀 3532·2019-08-29 13:27
閱讀 2006·2019-08-29 12:27