import json
from ronglian_sms_sdk import SmsSDK
'''
这里SmsSDK其实我们只需要实例化一次就可以,多次实例化会产生多个名称空间 浪费资源
所以我们采用单例模式 通过重写__new__方法 让每次实例化类都是使用同一个名称空间
'''
# 容联云参数
accId = '8aaf0708809721d00181328296ff3427'
accToken = '27c7493ea1ab4006a99cc46270f545f5'
appId = '8aaf0708809721d00181328297e7342e'
class Message:
def __new__(cls, *args, **kwargs):
# 判断类有没有_instance属性 有直接return cls._instance
# 没有则调用父类的__new__()方法赋值给cls._instance,再return cls._instance
if not hasattr(cls, '_instance'):
# 通过调用父类的对象的__new__方法,并派生出自己新的属性
cls._instance = super().__new__(cls, *args, **kwargs)
cls._instance.sdk = SmsSDK(accId, accToken, appId)
return cls._instance
def send_msg(self, tid, mobile, datas):
# 创建对象
# sdk = SmsSDK(accId, accToken, appId)
sdk = self.sdk
resp = sdk.sendMessage(tid, mobile, datas)
print(resp)
print(type(resp))
resp_json = json.loads(resp)
if resp_json['statusCode'] == "000000":
return True
else:
return False
if __name__ == '__main__':
a=Message()
a.send_msg('1','18850279021',('2333','4'))