面向對象設計與面向對象編程的關系
面向對象設計(OOD)不會特別要求面向對象編程語言。事實上,OOD 可以由純結構化語言來實現,比如 C,但如果想要構造具備對象性質和特點的數據類型,就需要在程序上作更多的努力。當一門語言內建 OO 特性,OO 編程開發就會更加方便高效。另一方面,一門面向對象的語言不一定會強制你寫 OO 方面的程序。例如 C++可以被認為“更好的C”;而 Java,則要求萬物皆類,此外還規定,一個源文件對應一個類定義。然而,在 Python 中,類和 OOP 都不是日常編程所必需的。盡管它從一開始設計就是面向對象的,并且結構上支持 OOP,但Python 沒有限定或要求你在你的應用中寫 OO 的代碼。OOP 是一門強大的工具,不管你是準備進入,學習,過渡,或是轉向 OOP,都可以任意支配。考慮用 OOD 來工作的一個最重要的原因,在于它直接提供建模和解決現實世界問題和情形的途徑。
類
類是一種數據結構,我們可以用它來定義對象,后者把數據值和行為特性融合在一起。類是現實世界的抽象的實體以編程形式出現。實例是這些對象的具體化。可以類比一下,類是藍圖或者模型,用來產生真實的物體(實例)。類還可以派生出相似但有差異的子類。編程中類的概念就應用了很多這樣的特征。在 Python 中,類聲明與函數聲明很相似,頭一行用一個相應的關鍵字,接下來是一個作為它的定義的代碼體,如下所示:
代碼如下:
def functionName(args):
'function documentation string' #函數文檔字符串
function_suite #函數體
class ClassName(object):
'class documentation string' #類文檔字符串
class_suite #類體
二者都允許你在他們的聲明中創建函數,閉包或者內部函數(即函數內的函數),還有在類中定義的方法。最大的不同在于你運行函數,而類會創建一個對象。類就像一個 Python 容器類型。盡管類是對象(在 Python 中,一切皆對象),但正被定義時,它們還不是對象的實現。
創建類
Python 類使用 class 關鍵字來創建。簡單的類的聲明可以是關鍵字后緊跟類名:
代碼如下:
class ClassName(bases):
'class documentation string' #'類文檔字符串'
class_suite #類體
基類是一個或多個用于繼承的父類的集合;類體由所有聲明語句,類成員定義,數據屬性和函數組成。類通常在一個模塊的頂層進行定義,以便類實例能夠在類所定義
的源代碼文件中的任何地方被創建。
新聞熱點
疑難解答