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=[r‘C:\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学习(二十七)邮件发送及面向对象编程的主要内容,如果未能解决你的问题,请参考以下文章