1. 程式人生 > >python學習(二十七)郵件發送及面向對象編程(1)

python學習(二十七)郵件發送及面向對象編程(1)

() ive none 類名 學習 什麽 安全 password 一個

郵件發送

使用郵件發送功能,需要先做以下三點:

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學習(二十七)郵件發送及面向對象編程(1)