類別(Class)提供了將資料與相關函式組合在一起的基本結構。
當一組函式緊密地協作於相同資料時,合併成類別能釐清它們的關係、移除冗餘參數,
揭示可以重構進類別的新行為。

Combine Functions into Class
何時該將函式合併成類別?
- 共享資料:多個函式操作相同的輸入資料
- 重複參數:多個函式接收相同的引數
- 高內聚:你發現了自然應該放在一起的額外相關行為
- 封裝:你想把資料和對該資料的操作綁在一起
範例#
重構前#
def add_numbers(x, y):
return x + y
def subtract_numbers(x, y):
return x - y
if __name__ == "__main__":
sum_result = add_numbers(10, 5)
subtract_result = subtract_numbers(10, 5)
print(f"Sum: {sum_result}, Subtract: {subtract_result}")重構後#
class Calculator:
def __init__(self, x, y):
self.x = x
self.y = y
def add(self):
return self.x + self.y
def subtract(self):
return self.x - self.y
if __name__ == "__main__":
calc = Calculator(10, 5)
sum_result = calc.add()
subtract_result = calc.subtract()
print(f"Sum: {sum_result}, Subtract: {subtract_result}")