timmy / 簡單實作資料庫依賴注入
0 лайк(-ов)
0 форк(-ов)
1 файл(-ов)
Последняя активность 7 months ago
| 1 | from abc import ABC, abstractmethod |
| 2 | |
| 3 | # 定義一個資料庫介面,規定大家都要有 connect 方法 |
| 4 | class IDatabase(ABC): |
| 5 | @abstractmethod |
| 6 | def connect(self): |
| 7 | pass |
| 8 | |
| 9 | # 具體實作 MySQL 版資料庫 |
| 10 | class MySQLDatabase(IDatabase): |
timmy / 使用 dataclass 定義資料類別
0 лайк(-ов)
0 форк(-ов)
4 файл(-ов)
Последняя активность 9 months ago
dataclass 提供簡潔的方式來定義類別,適用於需要 存儲資料、簡化初始化、提升可讀性 的場景,例如 設定管理、數據建模、API 資料結構。
| 1 | from dataclasses import dataclass |
| 2 | |
| 3 | @dataclass |
| 4 | class User: |
| 5 | name: str |
| 6 | age: int |
| 7 | email: str |
| 8 | |
| 9 | # 建立實例 |
| 10 | user = User(name="Tim", age=30, email="tim@example.com") |
timmy / 使用 ABC 定義抽象類別
0 лайк(-ов)
0 форк(-ов)
1 файл(-ов)
Последняя активность 9 months ago
ABC(Abstract Base Class)允許定義抽象類別,強制子類別實作特定方法,適用於建立統一的介面規範,確保繼承的類別都遵守特定的行為。
| 1 | from abc import ABC, abstractmethod |
| 2 | |
| 3 | # 定義抽象類別 |
| 4 | class Animal(ABC): |
| 5 | @abstractmethod |
| 6 | def make_sound(self) -> str: |
| 7 | """所有動物都必須實作此方法""" |
| 8 | pass |
| 9 | |
| 10 | # 繼承並實作抽象方法 |
timmy / 進階 Mixin 設計與用戶管理
0 лайк(-ов)
0 форк(-ов)
1 файл(-ов)
Последняя активность 10 months ago
此 Python 程式使用多個 Mixin,提供日誌記錄、時間標記、資料儲存、權限管理、事件監聽與異常處理功能,使 User 類別具備完整的資料管理與行為追蹤能力,適用於使用者管理與系統監控應用。
| 1 | import datetime |
| 2 | import json |
| 3 | import traceback |
| 4 | |
| 5 | class LoggingMixin: |
| 6 | """ 提供日誌功能的 Mixin 類別 """ |
| 7 | |
| 8 | def log(self, message): |
| 9 | """ 記錄日誌 """ |
| 10 | timestamp = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S") |
timmy / 進階 Mixin 設計與用戶管理
0 лайк(-ов)
0 форк(-ов)
1 файл(-ов)
Последняя активность 10 months ago
此 Python 程式使用多個 Mixin,提供日誌紀錄、時間標記、數據儲存與權限管理功能,適用於構建可擴展的用戶管理系統,提升代碼的模組化與可重用性。
| 1 | import datetime |
| 2 | |
| 3 | class LoggingMixin: |
| 4 | """ 提供日誌功能的 Mixin 類別 """ |
| 5 | |
| 6 | def log(self, message): |
| 7 | """ 簡單的日誌紀錄方法 """ |
| 8 | timestamp = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S") |
| 9 | print(f"[{timestamp}] {self.__class__.__name__}: {message}") |
timmy / 進階 Mixin 設計 (Advanced Mixin Design)
0 лайк(-ов)
0 форк(-ов)
1 файл(-ов)
Последняя активность 10 months ago
| 1 | import datetime |
| 2 | |
| 3 | class LoggingMixin: |
| 4 | """ 提供日誌功能的 Mixin 類別 """ |
| 5 | |
| 6 | def log(self, message): |
| 7 | """ 簡單的日誌紀錄方法 """ |
| 8 | timestamp = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S") |
| 9 | print(f"[{timestamp}] {self.__class__.__name__}: {message}") |
timmy / Python Mixin 類別設計
1 лайк(-ов)
0 форк(-ов)
1 файл(-ов)
Последняя активность 10 months ago
這段程式碼展示了如何使用 Mixin 類別來提供額外功能。GraphicMixin 提供 draw() 方法,而 ColorMixin 提供 set_color() 方法,ColoredGraphic 繼承這兩個 Mixin,使其具備繪圖與設定顏色的功能。這種設計可以在不影響主要類別結構的情況下,為不同類別添加額外行為。
| 1 | class GraphicMixin: |
| 2 | def draw(self): |
| 3 | print("Drawing the graphic") |
| 4 | |
| 5 | class ColorMixin: |
| 6 | def set_color(self, color): |
| 7 | self.color = color |
| 8 | print(f"Setting color to {color}") |
| 9 | |
| 10 | class ColoredGraphic(ColorMixin, GraphicMixin): |
timmy / Python 類別與方法
0 лайк(-ов)
0 форк(-ов)
1 файл(-ов)
Последняя активность 10 months ago
這段程式碼定義了一個 GreetingClass 類別,內含兩個方法 say_hello() 和 say_goodbye(),用來回傳問候語。透過建立 greeter 物件,可以呼叫這些方法,並測試它們是否符合預期的輸出,適合作為 Python 類別與方法的基礎學習示例。
| 1 | class GreetingClass: |
| 2 | name = "user" |
| 3 | |
| 4 | def say_hello(self): |
| 5 | """Class method.""" |
| 6 | return "Hello " + self.name |
| 7 | |
| 8 | def say_goodbye(self): |
| 9 | """Class method.""" |
| 10 | return "Goodbye " + self.name |
Последняя активность 10 months ago
此 Python 程式碼定義了一個 Card 類別,用來表示撲克牌的花色 (suit) 和數字 (number)。該類別包含屬性驗證機制,以確保設定的數值符合撲克牌的標準。此外,程式碼還建立了兩張撲克牌,並透過 assert 來驗證對象的變更是否符合預期,可用於模擬撲克牌遊戲的基礎單元。
| 1 | """ |
| 2 | 撲克牌 |
| 3 | """ |
| 4 | |
| 5 | |
| 6 | class Card: # 類別 |
| 7 | """ |
| 8 | 撲克牌 |
| 9 | """ |
Новее
Позже