python学习(二十七)邮件发送及面向对象编程

Posted 所谓双鱼

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python学习(二十七)邮件发送及面向对象编程相关的知识,希望对你有一定的参考价值。

邮件发送

使用邮件发送功能,需要先做以下三点:

1、在邮箱设置里面打开smtp服务

2、开启邮箱授权码,记住这个授权码

3、安装yagmail,  用 pip install yagmail-0.10.212-py2.py3-none-any.whl,如果直接用 pip install yagmail 中文会有乱码

import  yagmail
username=[email protected]
passwd=ljia1990312 #授权码
mail=yagmail.SMTP(user=username,
                  password=passwd,
                  host=smtp.163.com
                  #smtp_ssl=True
                   )  #如果用的是QQ邮箱或者使用的公司邮箱有安全协议,需要smtp_ssl=True
mail.send(to=[[email protected]],#如果多个收件人,写成list
          cc=[email protected], #抄送
          subject=学习发送邮件, #邮件标题
          contents=你好,你今天开心吗?,#邮件正文
          attachments=[rC:\Users\acer\Desktop\QQ截图20180317103804.png]
          )
print(发送成功)

面向对象

1、类、对象、实例、实例化、属性、方法的概念

1)类:一个种类,一个模型

2)对象:指具体的东西,模型造出来的东西叫做对象

3)实例:实例和对象是一个意思

4)实例化:实例化就是造东西的过程

5)属性:就是变量

6)方法:就是类里面的函数

 2、经典类与新式类

1)经典类:

 class Person:
       pass    #类名字首字母大写    经典类

2)新式类:

class Person2(object):   #新式类
     pass

在python3里面,经典类和新式类没有什么区别,都是广度优先。

在python2里面,多继承的时候,经典类深度优先,形式类广度优先。

在python2里面经典类不能使用super()方法

在python3里面经典类和新式类都能用

3、构造函数及实例化使用

class Person:
    def __init__(self):#构造函数,在类实例化的时候执行的函数,并不是必须要写的
        self.nose=2 #属性,变量
        self.face=2
        self.head=10
        self.wing=4
        print(开始测试)
    def driver(self):
        print(测试一下)
    def fly(self):
        print(可以飞)
    def eat(self):
        print(火锅,蛋糕)

__init__(self)是构造函数,在一个类里面非必写。并且在使用变量的时候前面都以self.开头,则在类的其他函数里面都可以直接self.调用这些变量。

类在使用的时候,首先必须实例化,类名+()来是实例化,如下

zz=Person() 

在实例化的时候就会执行构造函数,所以以上实例化后,会执行构造函数,输出内容变为:“开始测试”’,就是构造函数里面最后一句print的值

要使用类里面的变量或者函数的话,在实例化后,直接用实例化的名称加函数名或变量名即可,具体如下:

zz.eat()   #输出eat函数执行内容
zz.fly()     #输出fly函数执行内容
zz.fly()      #再次输出fly函数执行内容
zz.driver()  #输出driver函数执行内容
print(zz.wing)  #输出wing变量值
print(zz.nose)  #输出nose变量值

4、类传入参数使用及在函数中调用其他函数

class Person:
    def __init__(self, name):  # 传入参数
        self.name = name   将传入参数变为类里面的变量
        self.nose = 2  
        self.face = 2
        self.head = 10
        self.wing = 4
        print(开始测试)

    def driver(self):
        print(测试一下)
        self.eat()  # 调用类里面的函数

    def fly(self):
        print(%s可以飞 % self.name)  # 获取类里面的变量

    def eat(self):
        print(%s吃火锅,蛋糕 % self.name)

类传入参数,将此参数变为类里面的变量,则之后类里面的其他地方都可以直接使用self.+变量名进行调用。

以上代码中,类传入参数name,在构造函数中,将传入参数变为类里面的变量slef.name,在后面的fly及eat函数中可以直接调用使用。

并且类里面的函数可以相互调用。

za = Person(刘佳)
za.fly()
za.driver()
print(za.name)

执行结果为:

开始测试
刘佳可以飞
测试一下
刘佳吃火锅,蛋糕
刘佳

 

 

 

 

以上是关于python学习(二十七)邮件发送及面向对象编程的主要内容,如果未能解决你的问题,请参考以下文章

Python学习系列之面向对象

Python之路(第二十七篇) 面向对象进阶:内置方法描述符

pyhon学习目录

学习Pytbon第十七篇,面向对象编程

Python学习笔记(四十七)SMTP发送邮件

python编程:函数式编程和面向对象编程的对比