「Python系列」 Python 之面向對象(一)


「Python系列」 Python 之面向對象(一)

Python允許遵循幾種編程範例(例如過程編程,功能編程,面向對象的編程)編寫程序並將其組合在一起。

面向對象編程是當今使用最廣泛的範例之一。它基於對象的使用,這些對象包含稱為屬性的數據成員和稱為方法的有界函數(例程,過程)。

對象是類的實例。換句話說,類主要定義對象的結構,並用作創建對象的模板。類具有方法定義,但也可以包含所有實例通用的數據。

本文是有關Python中的面向對象程序設計的。它說明了如何創建類並使用它們實例化其對象。特別是,它涵蓋以下內容:

  • 創建Python類
  • 資料屬性
  • 實例方法
  • 物產
  • 類和靜態方法
  • 遺產

本文不會涵蓋這些主題的所有詳細信息。Python中還有許多其他面向對象的編程方面。希望它可以為開始學習和實現使用Python的面向對象程序提供良好的基礎。


創建Python類

我們用關鍵字class定義一個Python類,後跟該類的名稱,分號和該類的實現:

<code>>>> class MyClass:
... pass
.../<code>

按照約定,Python類使用ThePascalCase命名。現在讓我們創建一個名為MyClass的新類的實例:

<code>>>> a = MyClass()
>>> a
<__main__.myclass object="" at=""/>/<code>

語句a = MyClass()創建MyClass的實例,並將對它的引用分配給新變量a。

我們可以使用Python內置函數type()或直接使用.__ class__屬性來獲取類型,即對象的類。一旦有了類(類型),就可以使用屬性.__ name__獲得其名稱:

<code>>>> type(a)
<class>
>>> a.__class__
<class>
>>> a.__class__.__name__

'MyClass'/<class>/<class>/<code>

順便提一句,Python類也是對象。它們是類類型的實例:

<code>>>> type(MyClass)
<class>/<code>

現在讓我們定義一種方法。

Python中的每個實例方法都必須具有與實例相對應的第一個參數,即對象本身。按照慣例,此參數稱為self。如果有的話,後面跟著其他參數。當我們調用一個方法時,我們沒有明確提供與參數self相對應的參數。

我們通常定義的最重要的方法之一是.__ init __()。創建類的實例後,將調用此方法。它初始化類成員。讓我們看起來像這樣:

<code>>>> class MyClass:
... def __init__(self, arg_1, arg_2, arg_3):
... print(f'an instance of {type(self).__name__} created')
... print(f'arg_1: {arg_1}, arg_2: {arg_2}, arg_3: {arg_3}')
.../<code>

我們將創建MyClass的實例以查看將要發生的情況。我們的.__ init __()方法需要三個參數(arg_1,arg_2和arg_3;請記住,我們沒有傳遞與self對應的第一個參數)。因此,在實例化對象時,我們將給它三個參數:

<code>>>> a = MyClass(2, 4, 8)
an instance of MyClass created

arg_1: 2, arg_2: 4, arg_3: 8/<code>
  • 創建的實例是MyClass類型的對象。
  • 此實例的方法.__ init __()被自動調用。
  • 我們傳遞給MyClass()(2、4和8)的參數傳遞給.__ init __()。
  • .__ init __()執行並打印我們所請求的內容。它使用類型(self).__ name__獲取類的名稱。

現在我們有了一個類,它的方法.__ init __()和這個類的一個實例。


分享到:


相關文章: