本篇是 Python 系列教程第 10 篇,更多內容敬請訪問我的 Python 合集
這裡只介紹類和物件,self、屬性、方法、訪問控制、類繼承、方法重寫在後面的文章裡介紹
在Python中,類和物件是物件導向程式設計的基礎。
1 類的概念
類是一種建立物件的藍圖或模板。它定義了一組屬性(變數)和方法(函式),這些屬性和方法描述了該類的物件應該具有哪些特徵和行為。
2 定義一個類
在Python中,你可以使用class
關鍵字來定義一個類。例如,定義一個名為Person
的簡單類:
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def display(self):
print(f"Name: {self.name}, Age: {self.age}")
__init__
方法是一個特殊的方法,稱為構造器,用於初始化類的新例項。self
引數代表類的例項本身,並且是類任何方法的第一個引數。- 類方法需要透過
self
來訪問類屬性。
3 建立物件
建立一個類的例項(即物件)非常簡單。只需呼叫類名後跟一對括號即可:
person1 = Person("Alice", 25)
person2 = Person("Bob", 30)
4 訪問屬性和方法
可以透過點符號訪問物件的屬性和方法:
person1.display()
# 輸出: Name: Alice, Age: 25
print(f"Name: {person2.name}, Age: {person2.age}")
# 輸出: Name: Bob, Age: 30
Python 還有一個很牛逼的操作就是可以直接給物件賦值類裡不存在的屬性,比如我給 person2 的一個不存在的屬性 gender 賦值:
person2.gender = "男"
print(getattr(person2,"gender"))
# 輸出:男
5 和Java類的對比
5.1 類和檔案
在 Python 中,一個檔案可以包含多個類。我們新建一個 example.py 檔案,裡面建立兩個類,並在 main.py 檔案中使用它們。
example.py
class MyClass1:
def __init__(self, value):
self.value = value
def display(self):
print("MyClass1 Value is:", self.value)
class MyClass2:
def __init__(self, value):
self.value = value
def display(self):
print("MyClass2 Value is:", self.value)
你可以在另一個檔案中匯入並使用這些類:
main.py
from example import MyClass1, MyClass2
# 建立MyClass1的例項
instance1 = MyClass1("AAA")
instance1.display()
# 輸出:MyClass1 Value is: AAA
# 建立MyClass2的例項
instance2 = MyClass2("BBB")
instance2.display()
# 輸出:MyClass2 Value is: BBB
Java 一個檔案也可以有多個類,但只能有一個 public 的類,並且 public 的類名必須與檔名相一致。這是編譯器的基本要求。雖然可以有非 public 的類,但是在外部無法使用,只能在本檔案的類裡使用。
5.2 建構函式
Python 建構函式第一個引數是 self 代表類的例項本身,並且 self 是類任何方法的第一個引數。建構函式里用 self.xx = xx 賦值過的引數就是類的屬性,不用像 Java 一樣先宣告屬性。