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)
執行結果為:
開始測試
劉佳可以飛
測試一下
劉佳吃火鍋,蛋糕
劉佳
python學習(二十七)郵件發送及面向對象編程(1)