Python 是一种广泛应用于 Web 开发、数据分析、人工智能等多个领域的编程语言。设计模式是解决常见问题的通用解决方案,它们可以帮助开发者写出更加高效、可维护的代码。

以下是一些在 Python 中常用的设计模式:

单例模式 (Singleton)

单例模式确保一个类只有一个实例,并提供一个全局访问点。在 Python 中,可以通过以下方式实现单例模式:

class Singleton:
    _instance = None

    @staticmethod
    def getInstance():
        if Singleton._instance == None:
            Singleton._instance = Singleton()
        return Singleton._instance

# 使用单例
singleton1 = Singleton.getInstance()
singleton2 = Singleton.getInstance()
assert singleton1 is singleton2

装饰器模式 (Decorator)

装饰器模式允许你动态地向对象添加额外的职责,而不改变其接口。在 Python 中,装饰器通常用于日志记录、权限验证等。

def decorator(func):
    def wrapper(*args, **kwargs):
        print("Before function execution")
        result = func(*args, **kwargs)
        print("After function execution")
        return result
    return wrapper

@decorator
def say_hello(name):
    print(f"Hello, {name}")

# 使用装饰器
say_hello("Alice")

观察者模式 (Observer)

观察者模式允许对象在状态变化时通知其他对象。在 Python 中,可以使用标准库中的 observer 模块实现。

from observer import subject, observer

class MySubject(subject.Subject):
    def __init__(self):
        self._observers = []

    def register(self, observer):
        self._observers.append(observer)

    def unregister(self, observer):
        self._observers.remove(observer)

    def notify(self):
        for observer in self._observers:
            observer.update(self)

class MyObserver(observer.Observer):
    def update(self, subject):
        print(f"Observer received update from {subject.__class__.__name__}")

# 使用观察者
subject = MySubject()
observer = MyObserver()
subject.register(observer)
subject.notify()

更多关于 Python 设计模式的内容,您可以访问 Python 设计模式教程

图片示例

这里插入一张 Python 设计模式的图片:

Python_Design_Patterns

希望这些信息能帮助您更好地理解 Python 设计模式。