2014-07-07 31 views
-3

我是新來的蟒蛇,我來自C#背景。我正在閱讀一本關於Python的書,並且發現一個類是Python中的一個對象。我不太確定它是否屬實,因爲我試圖在網上查找它並找不到答案。有人能解釋一下嗎?Python面向對象的結構

下面是筆者所說的話複述:

程序單元,如函數,模塊和類是Python對象太

而且可能有人還闡述爲什麼是這樣的在C#中的對象是從類派生的。 像汽車是班和本田,梅賽德斯是該類的對象。但是正如我正在閱讀的那樣,Python類似乎是一個對象。所以汽車是一個對象,本田和梅賽德斯也是一個對象,所以課堂的好處是什麼?

+3

是的,這是真的。 Python中的所有東西都是一個對象。我不認爲Guido特別在乎Java和C++是否不以同樣的方式做事。 – geoffspear

+3

投票重新開放,因爲這個問題很清楚並且可以回答。清除這種跨語言混淆可能對其他人有幫助。 –

+0

@StevenRumbalski這是怎麼回事?在討論實現時,是否有單一的可選擇的答案「是否有任何好處」?似乎有許多正確的答案,表明它太寬泛。 – ABMagil

回答

3

當一個人創建一個Python類:

class Frabbah: 
    """ 
    A soothing class, designed to ease tensions on StackOverflow. 
    """ 

之一,那麼有一件事,或一個對象,一個可以工作:

--> print(Frabbah) 
<class '__main__.Frabbah'> 

,並可以將其添加屬性:

--> Frabbah.answer = 'Interesting...' 

,然後看看他們:

--> print(Frabbah.answer) 
Interesting... 

在Python中幾乎所有的東西都是一件東西,或者是一流的公民,也就是說你可以傳遞這些東西,檢查它們,修改它們等等。所以一個整數作爲一個對象,一個類是一個物體,一個功能是一個物體......

+0

謝謝。但是,讓我感到困惑的是,對於來自不同語言的人來說,當我有對象(超級集合),並且所有事情都是從它派生出來的時候,它就意味着我不需要類(子集),我可以使用對象而不是該對象可以具有歸因和功能。因爲在這裏你有對象而不是從那個對象派生一個類,而不是從那個類派生對象。 ??? – Shah

+0

我們也不需要循環,因爲goto可以達到同樣的目的。存在更高級別的語言可以使某些事情更容易,並不是因爲這個或那個構造是絕對必要的。至於'object'和它的實例 - 它們很特別,因爲它們沒有內置的'dict',所以你不能添加東西給它們,你需要繼承子類。 –

+0

因此,對象不能直接具有屬性和功能,它們需要成爲類的一部分才能充分利用類系統。對? – Shah