Python 是一种面向对象的编程语言。Python 类和对象是 Python 编程语言的核心构建模块。
Python 类
到目前为止,你们应该已经学过Python 数据类型。如果你记得的话,在 Python 中,基本数据类型仅指一次只处理一种数据。如果你可以声明一种数据类型,它本身包含多种数据类型,并可以通过任何函数与它们一起工作,那会是怎样的情况呢?Python 类为你提供了这个机会。Python 类是创建类的实例的蓝图。
简单的 Python 类声明
以下是 Python 类定义的基本结构。
class ClassName:
# Python 类变量列表
# Python 类构造函数
# Python 类方法定义
现在,让我们通过实际例子来学习。
#類別定義開始處
class Person:
#初始化變數
name = ""
age = 0
#定義建構函式
def __init__(self, personName, personAge):
self.name = personName
self.age = personAge
#定義類別方法
def showName(self):
print(self.name)
def showAge(self):
print(self.age)
#類別定義結束
# 創建一個類別的物件
person1 = Person("John", 23)
#創建另一個相同類別的物件
person2 = Person("Anne", 102)
#調用物件的成員方法
person1.showAge()
person2.showName()
這個例子基本上是自我解釋的。正如我們所知,以“#”開頭的行是Python註釋。註釋解釋了接下來的可執行步驟。此代碼產生以下輸出。
Python類別定義
class Person:
這一行標誌著類別’Person’的類別定義開始。
Python類別變數
#初始化變數
name = ""
age = 0
‘name’和’age’是類別’Person’的兩個成員變數。每次我們聲明此類別的一個物件時,它將包含這兩個變數作為其成員。此部分是可選的,因為它們可以由構造函數初始化。
Python 類別建構函式
#定義建構函式
def __init__(self, personName, personAge):
self.name = personName
self.age = personAge
Python 類別建構函式是在建立類別的新物件時首先執行的程式碼。主要來說,建構函式可以用來給成員變數設定值。您也可以在建構函式中列印訊息以確認物件是否已經建立。一旦我們了解了 Python 繼承的概念,我們將會學到建構函式更重要的角色。建構函式方法以 def __init__ 開始。之後,第一個參數必須是 ‘self’,因為它會傳遞對該類別實例的引用。您也可以像範例中所示的方式添加其他參數。’personName’ 和 ‘personAge’ 是在建立新物件時傳入的兩個參數。
Python 類別方法
#定義 Python 類別方法
def showName(self):
print(self.name)
方法的宣告方式如下:
def method_name(self, parameter 1, parameter 2, …….)
statements……..
return value (if required)
在上述的範例中,我們看到方法 showName()
印出了該物件的 ‘name’ 值。我們將在其他時候討論更多關於 Python 方法的內容。
Python 類別物件
# 創建一個類別的物件
person1 = Person("Richard", 23)
# 創建同一類別的另一個物件
person2 = Person("Anne", 30)
# 呼叫物件的成員方法
person1.showAge()
person2.showName()
在 Python 中創建物件的方式相當簡單。首先,您放置新物件的名稱,後面跟著分配運算子和類別名稱以及參數(如建構函式中所定義)。請記住,參數的數量和類型應該與建構函式中接收的參數相容。當物件已經被創建後,可以呼叫成員方法並存取成員屬性(前提是它們是可存取的)
# 通過直接存取 'name' 屬性來打印 person1 的名稱
print(person1.name)
以上是有關 Python 類別的基礎知識。隨著我們在接下來的教程中學習 Python 物件導向特性,如繼承、多型,我們將更深入地了解 Python 類別及其特性。在那之前,祝您編碼愉快,再見!如果您有任何疑問,請隨時評論。參考資料:Python.org 文件
Source:
https://www.digitalocean.com/community/tutorials/python-classes-objects