如何在Python中实现单例模式？请使用代码形式展示两种常用的单例模式实现，一种是使用__new__方法，另一种是使用metaclass。
user
```python
# 使用__new__方法实现单例模式
class Singleton1:
    _instance = None

    def __new__(cls, *args, **kwargs):
        if not cls._instance:
            cls._instance = super(Singleton1, cls).__new__(cls, *args, **kwargs)
        return cls._instance

# 使用metaclass实现单例模式
class SingletonMeta(type):
    _instances = {}

    def __call__(cls, *args, **kwargs):
        if cls not in cls._instances:
            cls._instances[cls] = super(SingletonMeta, cls).__call__(*args, **kwargs)
        return cls._instances[cls]

class Singleton2(metaclass=SingletonMeta):
    pass
```

以上代码展示了两种在Python中实现单例模式的方法。第一种方法直接在`__new__`方法中检查是否已创建实例，若未创建则创建新实例；第二种方法是通过自定义元类，在调用类时检查是否已存在实例，若无则创建并返回实例。这两种方式都能确保类只能生成一个实例。
assistant