加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Python 实现抽象类的两种方式+邮件提醒+动态导入模块+反射(参考

发布时间:2020-12-15 17:20:19 所属栏目:大数据 来源:网络整理
导读:实现抽象类的两种方式 方式一 abc abc span style="color: #0000ff;"class BaseMessage(metaclass=span style="color: #000000;"ABCMeta): @abstractmethod/spanspan style="color: #0000ff;"gt;def/spanspan style="color: #000000;"gt; send(self,subject,

实现抽象类的两种方式

方式一

abc abc <span style="color: #0000ff;">class BaseMessage(metaclass=<span style="color: #000000;">ABCMeta):

@abstractmethod
</span><span style="color: #0000ff;"&gt;def</span><span style="color: #000000;"&gt; send(self,subject,body,to,name):
    </span><span style="color: #0000ff;"&gt;pass</span></pre>

方式二

NotImplementedError()

邮件提醒

email.mime.text email.utils .base <span style="color: #0000ff;">class<span style="color: #000000;"> Email(BaseMessage):
<span style="color: #0000ff;">def
<span style="color: #800080;">init
<span style="color: #000000;">(self):
self.email
= <span style="color: #800000;">"寄件人的邮箱地址
<span style="color: #800000;">"
<span style="color: #000000;">
self.user
= <span style="color: #800000;">"寄件人姓名
<span style="color: #800000;">"
<span style="color: #000000;">
self.pwd = <span style="color: #800000;">'邮箱密码或SMTP授权码<span style="color: #800000;">'

<span style="color: #0000ff;"&gt;def</span><span style="color: #000000;"&gt; send(self,name):
    </span><span style="color: #800000;"&gt;'''</span><span style="color: #800000;"&gt;
    :param subject: 主题
    :param body: 内容
    :param to:接受者
    :param name:接受者姓名
    :return:
    </span><span style="color: #800000;"&gt;'''</span><span style="color: #000000;"&gt;

    msg </span>= MIMEText(body,<span style="color: #800000;"&gt;'</span><span style="color: #800000;"&gt;plain</span><span style="color: #800000;"&gt;'</span>,<span style="color: #800000;"&gt;'</span><span style="color: #800000;"&gt;utf-8</span><span style="color: #800000;"&gt;'</span>)  <span style="color: #008000;"&gt;#</span><span style="color: #008000;"&gt; 发送内容</span>
    msg[<span style="color: #800000;"&gt;'</span><span style="color: #800000;"&gt;From</span><span style="color: #800000;"&gt;'</span>] = formataddr([self.user,self.email])  <span style="color: #008000;"&gt;#</span><span style="color: #008000;"&gt; 发件人</span>
    msg[<span style="color: #800000;"&gt;'</span><span style="color: #800000;"&gt;To</span><span style="color: #800000;"&gt;'</span>] = formataddr([name,to])  <span style="color: #008000;"&gt;#</span><span style="color: #008000;"&gt; 收件人</span>
    msg[<span style="color: #800000;"&gt;'</span><span style="color: #800000;"&gt;Subject</span><span style="color: #800000;"&gt;'</span>] = subject <span style="color: #008000;"&gt;#</span><span style="color: #008000;"&gt; 主题</span>

<span style="color: #000000;">

    server </span>= smtplib.SMTP(<span style="color: #800000;"&gt;"</span><span style="color: #800000;"&gt;smtp.126.com</span><span style="color: #800000;"&gt;"</span>,25) <span style="color: #008000;"&gt;#</span><span style="color: #008000;"&gt; SMTP服务</span>
    server.login(self.email,self.pwd) <span style="color: #008000;"&gt;#</span><span style="color: #008000;"&gt; 邮箱用户名和密码</span>
    server.sendmail(self.email,[to,],msg.as_string()) <span style="color: #008000;"&gt;#</span><span style="color: #008000;"&gt; 发送者和接收者</span>
    server.quit()</pre>

动态导入模块+反射

settings

MESSAGE_CLASSES =

<div class="cnblogs_code">

 django.conf 
     cls_path 
        module_path,class_name = cls_path.rsplit(,maxsplit=1
        m =
        obj =
        obj.send(subject,)  

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读