和舊版的Python 2.7教程相比,新增內容包括:
新增命名關鍵字參數的使用; 新增StringIO和BytesIO; 新增datetime的使用; 新增urllib的使用; 新增枚舉類型的使用; 新增virtualenv的使用; 新增asyncio編程; 新增aiohttp編程; 實戰的Web App已完全基于asyncio重寫。本文將詳細給大家介紹Python3中類、模塊、錯誤與異常、文件的相關內容,分享出來供大家參考學習,下面話不多說了,來一起看看詳細的介紹吧。
類
面向對象設計思想是 Class 抽象的,Instance 一個個具體的 Class,比如學生是抽象的 Class,而張三李四就是一個個具體學生。
定義
Class 大駝峰命名法。僅供內部用的 Class,名稱前會加一個底線。
類定義一般格式:
class Student: pass# 或者class Developer(object): pass
object 表示該類是從哪個類繼承下來的,object 是最終的父類。
class Developer(object): # 定義類屬性 name = 'WuXiaolong' site = 'http://wuxiaolong.me/' # 變量名兩個下劃線開頭,定義私有屬性, 這樣在類外部無法直接進行訪問,類的私有方法也是如此 __sex = 0 # 定義構造方法 def __init__(self, name, site, sex): self.name = name self.site = site self.__sex = sex # 類方法 def get_sex(self): return self.__sex def set_sex(self, sex): self.__sex = sex# 調用:if __name__ == '__main__': # 實例化類 developer = Developer('wxl', 'http://wuxiaolong.me/', 1) # 實例化成變量 print(developer.site, developer.get_sex()) # 訪問類的屬性和方法注意:以單下劃線開頭的表示的是 protected 類型的變量或方法,即保護類型,只能允許其本身與子類進行訪問,不能用于 from module import *。
單繼承
class Developer(object): # 定義類屬性 name = 'WuXiaolong' site = 'http://wuxiaolong.me/' # 變量名兩個下劃線開頭,定義私有屬性, 這樣在類外部無法直接進行訪問,類的私有方法也是如此 __sex = 0 # 定義構造方法 def __init__(self, name, site, sex): self.name = name self.site = site self.__sex = sex # 類方法 def get_sex(self): return self.__sex def set_sex(self, sex): self.__sex = sex# 單繼承class AndroidCoder(Developer): coder_id = 1024 # 定義構造方法 def __init__(self, name, site, sex, coder_id): # 調用父類構造方法 # Developer.__init__(self, name, site, sex) # 老辦法 super(AndroidCoder, self).__init__(name, site, sex) # 采用新式 self.coder_id = coder_id # 重寫父類的方法 def set_sex(self, sex): self.__sex = sex print('這是個秘密') def get_sex(self): return self.__sex# 調用:if __name__ == '__main__': # 單繼承 androidCoder = AndroidCoder('wxl', 'http://wuxiaolong.me/', 1, 520) print(androidCoder.set_sex(2))注意:super 繼承,要求最頂層的父類一定要繼承于object,這樣就可以利用 super() 函數來調用父類的 init() 等函數。
新聞熱點
疑難解答