1.Python 的動態元類 (Metaclasses)
Python 是一種高度動態的語言,允許你在運行時定義和修改類結構。這是 Python 的一個強大且少為人知的功能。元類是 Python 中的類工廠,通過它你可以控制類是如何被創建的。這在框架設計中非常有用,因為可以讓你在定義類的時候,動態地改變類的行為。
python
複製程式碼
class Meta(type):
def new(cls, name, bases, dct):
print(f"Creating class {name}")
return super().new(cls, name, bases, dct)
class MyClass(metaclass=Meta):
pass
創建類時,會調用元類
輸出: Creating class MyClass
元類在 Django 等框架中被大量應用,用來動態生成模型或控制資料庫行為
2.裝飾器 (Decorators)
裝飾器是 Python 中一個非常獨特且強大的功能,它允許你在不改變函數定義的情況下,添加額外的功能。這是 Python 中實現面向切面編程 (Aspect-Oriented Programming) 的方式之一。
python
複製程式碼
def my_decorator(func):
def wrapper():
print("Something before the function.")
func()
print("Something after the function.")
return wrapper
@my_decorator
def say_hello():
print("Hello!")
say_hello()
這樣的結構在 Web 框架、登錄系統和性能監控中常見。例如,在 Flask 中,路由 (@app.route) 本質上就是一個裝飾器。