魔法方法 (Magic Methods)
Python 提供了許多特殊的「魔法方法」來讓你控制類別的行為,比如運算符重載、對象比較等。
以下是範例程式:
class Vector:
def init(self, x, y):
self.x = x
self.y = y
def __add__(self, other):
return Vector(self.x + other.x, self.y + other.y)
def __repr__(self):
return f"Vector({self.x}, {self.y})"
v1 = Vector(1, 2)
v2 = Vector(3, 4)
print(v1 + v2) # Vector(4, 6)
在這裡,我們用 add 方法來讓兩個 Vector 對象可以直接用 + 號進行相加。
函數內部函數 (Nested Functions)
Python支援在一個函數裡定義另一個函數,這種情況通常在需要封裝邏輯或共享變量時使用。
以下是範例程式:
def outer_function(text):
def inner_function():
print(text)
inner_function()
outer_function("Hello from the inside!") # 打印 "Hello from the inside!"
內部函數可以存取外部函數的變量,這讓你的程式結構更具彈性。
閉包 (Closures)
閉包是指內部函數記住了外部函數的變量,即使外部函數已經返回,內部函數依然可以使用這些變量。
以下是範例程式:
def make_multiplier(n):
def multiplier(x):
return x * n
return multiplier
times3 = make_multiplier(3)
print(times3(10)) # 輸出 30
這樣的閉包技巧在構建可重用的邏輯時非常有用。