<SYSTEM_TASK:>
Given the following text description, write Python code to implement the functionality described below step by step
<END_TASK>
<USER_TASK:>
Description:
 Python 单例模式
1 _new_ 方法
_new_(cls, *args, **kwargs)  创建对象时调用，返回当前对象的一个实例;注意：这里的第一个参数是cls即class本身  
_init_(self, *args, **kwargs) 创建完对象后调用，对当前对象的实例的一些初始化，无返回值,即在调用__new__之后，根据返回的实例初始化；注意，这里的第一个参数是self即对象本身
Step1:  2 使用类(class)装饰器
Step2:  3 使用GetInstance方法，非线程安全
<ASSISTANT_TASK:>
Python Code:
class Singleton(object):  
    def __new__(cls, *args, **kwargs):  
        if not hasattr(cls, '_instance'):  
            cls._instance = super(Singleton, cls).__new__(cls, *args, **kwargs)  
        return cls._instance
class MyClass(object):
    pass
single1 = Singleton()
single2 = Singleton()
myclass1 = MyClass()
myclass2 = MyClass()
print id(single1) == id(single2)
print id(myclass1) == id(myclass2)
Explanation: Python 单例模式
1 _new_ 方法
_new_(cls, *args, **kwargs)  创建对象时调用，返回当前对象的一个实例;注意：这里的第一个参数是cls即class本身  
_init_(self, *args, **kwargs) 创建完对象后调用，对当前对象的实例的一些初始化，无返回值,即在调用__new__之后，根据返回的实例初始化；注意，这里的第一个参数是self即对象本身
End of explanation
from functools import wraps
def singleton(cls):  
    instances = {}  
    @wraps(cls)  
    def wrapper(*args, **kwargs):  
        if cls not in instances:  
            instances[cls] = cls(*args, **kwargs)  
        return instances[cls]  
    return wrapper
@singleton  
class MyClass(object):  
    pass
myclass1 = MyClass()
myclass2 = MyClass()
print id(myclass1) == id(myclass2)
Explanation: 2 使用类(class)装饰器
End of explanation
class MySingleton(object):  
    @classmethod
    def getInstance(cls):  
        if not hasattr(cls, '_instance'):  
            cls._instance = cls()  
        return cls._instance
mysingleton1 = MySingleton.getInstance()
mysingleton2 = MySingleton.getInstance()
print id(mysingleton1) == id(mysingleton2)
Explanation: 3 使用GetInstance方法，非线程安全
End of explanation
<END_TASK>