1樓:rainzee
### 類(class)是抽象化的概括
### 物件(object)是具象化的例項
上述是一切思想的根本,任何物件導向程式設計都遵守這個思想,下面來具體理解。
當我們想描述一類事物的時候,我們首先需要尋找這一類事物的共同點,例如,「學生」,很顯然,每個學生都至少擁有「姓名」,「年齡」,無論是小明,還是小紅,所以這就是乙個抽象的概括,在python中,就可以這樣寫。
```python
class Student(object):
def __init__(self, name, age):
self.name = name
self.age = age
這樣,乙個簡單地「學生類」就定義出來了,其中Student是類名,object表示其繼承自object基類,類中的函式我們稱之為方法,其中的`__init__`就是一種特殊的方法,我們稱之為構造方法,他可以在初始化/例項化的過程中將屬性進行繫結。
接下來,有了這個類,我們就可以輕鬆的建立例項了,之前說了,類是抽象的概括,那麼如何把乙個類變成乙個具體的物件呢,那就是例項化,在python中,可以這樣寫。
```python
stu1 = Student(name='小明',age=13)
stu2 = Student(name='小紅',age=14)
這樣,我們就通過學生類,建立出來了兩個學生物件,小明和小紅,接下來你還可以繼續在類中新增方法和屬性,這就是基礎的物件導向程式設計,當然這只是基礎的演示,還有更高階的用法,但是核心思想都是一樣的。
2樓:
Python底層基於 C語言,C語言不是物件導向語言,所以,Python中的所有物件其實都是一種特定資料結構,其中包含了這個物件所有的方法指標。
類也是一種物件。而類的例項實際上包含乙個指標和乙個字典,字典中是這個例項的各種變數,而指標則指向類物件,例項呼叫方法的時候,會向類物件查詢這個方法並執行。
詳情可參考:
kant li:9. Python的類是如何運作的?
3樓:真格量化
可以參考 真格量化:「bal.CashBalance」兩單詞之間加個點到底是些啥?--簡介Python的物件導向程式設計方法
4樓:綠毛水怪
在python裡,一切都是物件,它其實是乙個指標,指向乙個資料結構,資料結構裡有屬性,有方法,也就是說,一切變數都是物件.
而類,通俗地講,是乙個告訴計算機如何建立乙個物件的"藍圖",它本身不是乙個物件,而是告訴計算機如何呼叫該類,創造乙個該類的例項(物件).所以你在呼叫類時需要x = class()來建立乙個例項,這時你操作的不是該類,而是根據該類給出的"藍圖"建立的乙個物件.
5樓:卡公尺那
類這個東西分為資料部分和操作部分資料部分腦補rpg遊戲的人物屬性值介面就是讓你寫出這個類的屬性表。 操作部分腦補街霸的出招表,就是說明白這個類能做什麼. 就比較有概念了,記得初始化哦
6樓:破呼藥丸
類是一類資料的定義,這種名為類的資料內部包含屬性和方法。
物件是類的例項化。
如果說學生是乙個類,作為學生類,每個學生例項都有乙個學校(屬性),都有乙個方法(上學)。
我也是學生,我就是乙個學生類的例項化,也就是乙個物件。
即物件為類的例項化。
7樓:
舉個例子:
數字。我們知道所有的數字都能進行加減乘除四則運算。那麼我們就可以增加乙個類數。這個類有屬性(必須是數字)和方法(加減乘除)。
我們的正數除了能加減乘除,還能夠開方,於是我們建立乙個子類正數將他的父類數的屬性和方法繼承過來,在增加乙個方法開方。
再舉個例子我建立了乙個學生的類
這個類有自己的屬性,成績
我們還想列印出這個成績,就可以給這個類增加乙個方法
8樓:駱自強
說一下自己對類的理解,類是對一些有些共同特徵和行為事物的總稱。特徵相當於屬性,行為則對應方法。既然談到類,就不得不說例項(instance),例項是類的具體化,而大量例項經過抽象(提煉出共同點,忽略一些細節)就成了類,類是變數和方法(函式)的封裝。
類中的變數又分為例項變數和類變數,方法則分為魔法方法,一般方法。
9樓:
生活中總是會遇到很多 SB,我們把 SB_A、SB_B、SB_C 統一歸類為 SB,SB 這個詞,這一類人的合稱,就相當於 Python 中的類。
SB_A、SB_B、SB_C 等花樣繁多、內涵各異、各式各樣的 SB,單個拎出來,也都是 SB,但是因為是單個的,鮮活的,是 SB 的典型例項,是類的例項,就相當於 Python 中的物件,不過,誰會希望自己的物件是 SB 呢?
:物件是類的例項。
:SB_A 是 SB 的例子。
:SB_B 是 SB 的例子。
:SB_C 是 SB 的例子。
SB 怎麼這麼多?
SB 總是有屬性的,比如可能是男的,可能是女的。
SB 總是有方法的,總是有各種辦法讓你不爽。
以下請自由發揮。
10樓:「已登出」
個人經驗,僅供參考。
當年,這個類和物件差點兒把我整瘋了,後來看了:
公開課,太原理工大學《物件導向程式設計思想概覽》,書,a byte of python,(雖然寫的很簡單,但總算讓我明白了)。
這才明白什麼類,什麼物件,及python物件導向這部分內容。
-這是分割線-
當年我直接看的《python學習手冊》,個人感覺,物件導向部分寫的並不好。
11樓:Spluber
類,是一種可以將資料和方法按需要綁在一起,設定相應的邏輯,甚至在內部抽象出更高階的東西,然後將它們封裝在一起,形成的乙個模版。例項就是按照模版的格式新建乙個資料。而你說的物件其實是有點籠統了,希望問得明白些
12樓:ZIDN W
1.萬物皆物件,把物件歸類就有了類;
類也是物件,把類歸了類就是超類;
以此類推.
2.物件往往具備(也可以不具備) 行為和屬性.
行為我們通常用函式(function) 實現屬性(attribute)我們通常用變數實現3.因為萬物皆物件,所以"函式"&"變數"也是物件所以 "變數"可以有自己的"函式", "函式"也可以有自己的變數.
4.藉此機會練習五筆,所以故意多打了一些字.
13樓:
程式是對現實世界的模擬,那麼我們先抽象出世界的模型,在這個模型裡世界是由物件構成,我們在抽象一下,發現物件由行為,屬性構成,再抽象一下就是類了!
14樓:
題主問的太籠統了,不知道答的對不對. 看下面的圖左邊元類,中間類,右邊例項
其實記住的只是一點:python裡一切都是物件,例項是物件,類是物件,元類也是物件.
這裡題主說的類和物件其實是包含和被包含的關係了.
那麼Python裡的類和其他的物件有什麼區別?
例項是物件,因為建立例項的是類.類是物件,建立類的是什麼呢?Python給的答案就是元類.你可以通過type()函式來檢視它的元類.(type(type)得到的是它自己)
其實這個類和其他物件一樣,所以我們就不驚訝它為什麼有類方法,類變數了....
如何理解胡塞爾在物件的自在存在與物件的主觀的束縛在情況上的被給予方式之間存在著一種原本的互動關係?
楊思基 迄今為止,人類除了 有感知 在感知 是感知 外,沒有別的,所以人所言說的世界如何如何都是某種 感知 世界 存在,包括人之我的確立都是一系列感知的範疇或特徵,簡言之,存在即感知,或存在就是感知 資訊 知識形態。知 感知 或知與識就是存在的本質 主體,就是原本的互動關係。什麼所謂客觀與主觀,現象...
如何理解 Python 的 Descriptor?
一起吃鰻魚飯啊 簡單來說,對與既支援函式式程式設計又支援物件導向式程式設計的語言來說,統一函式和類方法有兩種解決方案,一種是像Ruby一樣所有的callable都是類方法,或者像Python這樣,類方法只是帶有物件的特殊函式,descriptor就是為了解決這個而引入的。 影之心 描述器有三個特殊方...
如何理解python的sqlalchemy這種orm框架?
回答這個問題之前,首先讓我們回顧一下,乙個關聯式資料庫中都有什麼?沒錯,簡單來說,就是一張張表。表中又有什麼?行和列,一行就是一條記錄,一列就代表著一條記錄的某個屬性。舉例來說,乙個學籍資料庫可能包含一張學生資訊表,表中每行記錄著乙個學生的資訊,由很多列組成,每一列表示學生的乙個屬性,比如姓名 年齡...