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

邮件发送

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

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)

执行结果为:

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

原文地址:https://www.cnblogs.com/emilyliu/p/9080123.html

时间: 2024-08-29 20:48:11

python学习(二十七)邮件发送及面向对象编程(1)的相关文章

python学习笔记SMTP邮件发送

Java%E5%AD%A6%E4%B9%A0%E5%BF%83%E5%BE%97%E4%B9%8B%20Linux%E4%B8%8B%E6%90%AD%E5%BB%BAJava%E7%8E%AF%E5%A2%83 ?????QlDA99zq?????????? http://auto.315che.com/lianhual3/qa23839716.htm?u2 http://auto.315che.com/biaozhi207/qa23860550.htm?b9 http://auto.315c

python学习笔记[3]-邮件的发送

本文摘抄自:http://www.cnblogs.com/xiaowuyi/archive/2012/03/17/2404015.html 一.相关模块介绍 发送邮件主要用到了smtplib和email两个模块,这里首先就两个模块进行一下简单的介绍:    1.smtplib模块 smtplib.SMTP([host[, port[, local_hostname[, timeout]]]])   SMTP类构造函数,表示与SMTP服务器之间的连接,通过这个连接可以向smtp服务器发送指令,执行

[Python 学习] 二、在Linux平台上使用Python

这一节,主要介绍在Linux平台上如何使用Python 1. Python安装. 现在大部分的发行版本都是自带Python的,所以可以不用安装.如果要安装的话,可以使用对应的系统安装指令. Fedora系统:先以root登入,运行 yum install python Ubuntu系统:在root组的用户, 运行 sudo apt-get install python 2. 使用的Python的脚本 Linux是一个以文件为单位的系统,那么我们使用的Python是哪一个文件呢? 这个可以通过指令

OpenCV for Python 学习 (二 事件与回调函数)

今天主要看了OpenCV中的事件以及回调函数,这么说可能不准确,主要是下面这两个函数(OpenCV中还有很多这些函数,可以在 http://docs.opencv.org/trunk/modules/highgui/doc/user_interface.html 找到,就不一一列举了),然后自己做了一个简单的绘图程序 函数如下: cv2.setMouseCallback(windowName, onMouse[, param]) cv2.createTrackbar(trackbarName,

进击的Python【第七章】:Python的高级应用(四)面向对象编程进阶

Python的高级应用(三)面向对象编程进阶 本章学习要点: 面向对象高级语法部分 静态方法.类方法.属性方法 类的特殊方法 反射 异常处理 Socket开发基础 一.面向对象高级语法部分 静态方法 要在类中使用静态方法,需在类成员函数前面加上@staticmethod标记符,以表示下面的成员函数是静态函数.使用静态方法的好处是,不需要定义实例即可使用这个方法.另外,多个实例共享此静态方法. 类方法 类方法与普通的成员函数和静态函数有不同之处,在接触的语言中好像也没见过这种语义,看它的定义: 

进击的Python【第六章】:Python的高级应用(三)面向对象编程

Python的高级应用(三)面向对象编程 本章学习要点: 面向对象编程介绍 面向对象与面向过程编程的区别 为什么要用面向对象编程思想 面向对象的相关概念 一.面向对象编程介绍 面向对象程序设计(英语:Object-oriented programming,缩写:OOP)是一种程序设计范型,同时也是一种程序开发的方法.对象指的是类的实例. 已经被证实的是,面向对象程序设计推广了程序的灵活性和可维护性,并且在大型项目设计中广为应用. 此外,支持者声称面向对象程序设计要比以往的做法更加便于学习,因为它

学习笔记之邮件发送篇

用脚本语言发送邮件是系统管理员必备技能 对系统定期检查或者当服务器受到攻击时生成文档和报表. 发布这些文档最快速有效的方法就是发送邮件. python中email模块使得处理邮件变得比较简单 发送邮件主要用到了smtplib和email两个模块,这里首先就两个模块进行一下简单的介绍: 本段摘录于    http://www.cnblogs.com/xiaowuyi/archive/2012/03/17/2404015.html 1.smtplib模块 smtplib.SMTP([host[, p

【Python学习之路】——Day7(面向对象)

面向对象 概述 面向过程:根据业务逻辑从上到下写垒代码 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可 面向对象:对函数进行分类和封装,让开发"更快更好更强..." 面向过程编程最易被初学者接受,其往往用一长段代码来实现指定功能,开发过程中最常见的操作就是粘贴复制,即:将之前实现的代码块复制到现需功能处. while True: if cpu利用率 > 90%: #发送邮件提醒 连接邮箱服务器 发送邮件 关闭连接 if 硬盘使用空间 > 90%: #发

Python学习笔记(六)之 面向对象

一.面向过程 VS 面向对象 编程范式 编程是程序员用特定的语法+数据结构+算法组成的代码来告诉计算机如何执行任务的过程 ,一个程序是程序员为了得到一个任务结果而编写的一组指令的集合,正所谓条条大路通罗马,实现一个任务的方式有很多种不同的方式,对这些不同的编程方式的特点进行归纳总结得出来的编程方式类别,即为编程范式.不同的编程范式本质上代表对各种类型的任务采取的不同的解决问题的思路,大多数语言只支持一种编程范式,当然也有些语言可以同时支持多种编程范式.两种最重要的编程范式分别是面向过程编程和面向