<th id="pruem"></th>

  1. <th id="pruem"></th>
  2. <code id="pruem"></code>

    1. 距離結束還剩:05天15小時
      圖解Python(高級篇)

      獨家

      下載課程

      下載學院APP

      緩存視頻離線看

      收藏(686)

      圖解Python(高級篇)

      課程目標: 通過學習本套視頻課程,希望能夠幫助各位朋友掌握Python編程語言的一些高級主題,...

      5分
      共95課時 共18小時4分鐘 更新時間: 15天前

      會員購課最多贈送318學分, 學分說明>>>

      價  格

      ¥158.40

      ¥198.00

      優惠活動

      中秋佳節 - 8折

      購買該課程所屬專題立省97.80元>>>

      2424小時內答疑

      課時永久觀看

      退15分鐘內無條件退款

      1. 僅限付費視頻課程適用
      2. 購買后15分鐘內可以找到客服進行溝通退款
      3. 下載資料后不再享有退款特權
      4. 客服(Tel:400-101-1651)
      5. 最終解釋權歸51CTO學院所有

      專屬資料下載

      課程介紹

      課程大綱

      學習資料

      學員評價

      課程目標
      通過學習本套視頻課程,希望能夠幫助各位朋友掌握Python編程語言的一些高級主題,進一步提高Python技能和水平!
      適用人群
      已經學習完《圖解Python視頻教程(基礎篇)》的朋友;有一定的Python基礎并想進一步提高的朋友
      課程簡介
      • 說在前面的話

        本套視頻課程是《圖解Python(基礎篇)》的后續課程,還沒有學習基礎篇的朋友可以在51CTO學院進行搜索。您正在觀看的,可能是迄今為止最易懂的Python視頻教程!

      • 淺拷貝

        所謂淺拷貝,指的是:對于某個對象,雖然創建了與該對象具有相同值的另一個對象,但是,這兩個對象內部嵌套的對應子對象全都是同一個對象。簡單地說,外部進行了拷貝,內部沒有拷貝。以下方式得到的拷貝都是淺拷貝:1. 切片操作[:] 2. 調用列表、字典、集合的方法copy() 3. 調用...

      • 深拷貝

        所謂深拷貝,指的是:對于某個對象,創建與該對象具有相同值的另一個對象,同時,這兩個對象內部嵌套的對應可變子對象全都不是同一個對象。簡單地說,外部和內部都進行了拷貝。如果不可變對象內部又嵌套的可變子對象,深拷貝之后,會創建一個與該不可變對象具有相同值的另一個對象。

      • 面向對象編程的概述(上)

        面向對象編程(Object Oriented Programming,簡稱OOP),是一種編程方式,這種編程方式需要使用"對象"來實現。對象具有以下特征:1. 世間萬物皆對象;2. 每個對象都是**的;對象具有屬性和行為;對象具有狀態;對象分為類對象和實例對象兩大類。

      • 面向對象編程的概述(下)

        面向對象編程的大體步驟:1. 抽象出類對象;2. 抽象出類對象的屬性;3. 抽象出類對象的行為(方法);4. 根據類對象創建實例對象; 5. 通過實例對象訪問屬性和方法。

      • 定義類對象和創建實例對象(上)

        根據類對象創建實例對象的語法格式為:類名([實參])。為了在創建實例對象后對其進行初始化(例如:給實例對象綁定一些屬性),可以在類對象中定義一個名為__init__的特殊方法(以雙下劃線__開頭和結尾的方法)。這樣,創建實例對象后就會自動調用特殊方法__init__。如果沒有定義特殊...

      • 定義類對象和創建實例對象(下)

        如果在類對象中定義了特殊方法__init__,那么對于"類名([實參])",會執行兩大步:1. 創建實例對象;2. 自動調用創建的實例對象的特殊方法__init__(創建的實例對象會作為實參被自動傳遞給特殊方法__init__的第一個形參self)。

      • 實例屬性(上)

        實例屬性指的是實例對象所綁定的屬性。綁定實例屬性(給實例對象綁定屬性)的方式有兩種:1. 在類對象的內部(方法中);2. 在類對象的外部。訪問實例屬性的方式有兩種:1. 在類對象的內部(方法中);2. 在類對象的外部。之所以添加前綴"self"或"實例對象",是為了表明實例屬性...

      • 實例屬性(下)

        同一個類對象的不同實例對象所綁定的實例屬性是相互獨立的。也就是說,給一個實例對象綁定的實例屬性,對于另外一個實例對象是不起作用的。

      • 類屬性(上)

        類屬性指的是類對象所綁定的屬性。綁定類屬性(給類對象綁定屬性)的方式有兩種:1. 在類對象的內部(方法外);2. 在類對象的外部。訪問類屬性的方式有兩種:1. 在類對象的內部(方法中);2. 在類對象的外部。之所以添加前綴"類對象",是為了表明類屬性被哪個類對象所綁定。

      • 類屬性(中)

        舉例實踐綁定類屬性的兩種方式和訪問類屬性的兩種方式。

      • 類屬性(下)

        訪問實例屬性和類屬性都可以通過"實例對象.屬性名"的方式。當通過"實例對象.屬性名"的方式訪問屬性時,會先查找指定的實例對象中有沒有指定名稱的實例屬性,如果沒有,再查找對應的類對象中有沒有指定名稱的類屬性。所以,當通過"實例對象.屬性名"的方式訪問屬性時,如果實例屬性和類...

      • 實例方法(上)

        實例方法指的是只有實例對象才可以調用的方法。在類對象中定義實例方法時,第一個形參表示調用該方法的實例對象,其對應的實參由系統自動傳入。第一個形參的名稱通常是self,也可以是其它名稱。調用實例方法時,系統自動將調用該實例方法的實例對象作為實參傳遞給第一個形參。第一個...

      • 實例方法(下)

        Python是動態語言,所以,在實例對象或類對象創建之后,可以對其動態地綁定實例方法。同一個類對象的不同實例對象所綁定的實例方法是相互獨立的。也就是說,給一個實例對象綁定的實例方法,對于另一個實例對象是不起作用的。為了能讓一個類對象的所有實例對象都能調用某個實例方法,...

      • 類方法

        類方法指的是類對象中使用裝飾器@classmethod進行裝飾的方法。在類對象中定義類方法時,必須使用裝飾器@classmethod進行裝飾,此外,第一個形參表示類對象,其對應的實參由系統自動傳入。第一個形參的名稱通常是cls,也可以是其它名稱。調用類方法時,系統自動將類對象作為實參傳遞給...

      • 靜態方法

        類對象的靜態方法只是一個普通函數。把某個普通函數歸屬于類對象,可能只是為了易于代碼管理。在類對象中定義靜態方法時,必須使用裝飾器@staticmethod進行裝飾。靜態方法只是一個普通函數,因此,第一個形參沒有特殊含義和要求。調用靜態方法時的參數傳遞與調用普通函數是一樣的。

      • 訪問控制

        訪問控制指的是:控制類對象的屬性和方法在類對象的外部是否可以直接訪問。如果在類對象的某個屬性或方法前添加兩個下劃線__,那么在類對象的外部就不能直接訪問該屬性或方法了。之所以不能在類對象的外部直接訪問以雙下劃線開頭的屬性或方法,是因為:Python解釋器對外把屬性或方法_...

      • 封裝

        封裝是面向對象編程的三大特征之一。封裝有兩方面的含義:1. 將數據(屬性)和行為(方法)包裝到類對象中。在方法內部對屬性進行操作,在類對象的外部調用方法。這樣,無需關心方法內部的具體實現細節,從而隔離了復雜度。2. 在類對象的內部通過訪問控制把某些屬性和方法隱藏起來...

      • 繼承的概述

        當幾個類對象中有共同的屬性和方法時,就可以把這些屬性和方法抽象并提取到一個基類中,每個類對象特有的屬性和方法還是在本類對象中定義,這樣,只需要讓每個類對象都繼承這個基類,就可以訪問基類中的屬性和方法了。繼承基類的每個類對象被稱為派生類。基類也被稱為父類或超類,派...

      • 繼承

        子類只有一個直接父類時稱為單繼承,子類有多個直接父類時稱為多繼承。子類會繼承所有父類(包括所有直接父類和所有間接父類)的所有屬性和方法。子類可以添加父類中沒有的屬性和方法。

      • 重寫

        如果子類對繼承自父類的某個屬性或方法不滿意,可以在子類中對其進行重寫從而提供自定義的實現,重寫的方式為:在子類中定義與父類中同名的屬性或方法(包括裝飾器)。子類重寫父類的屬性后,通過子類或其實例對象只能訪問子類中重寫后的屬性,而無法再訪問父類中被重寫的屬性。子類...

      • 多態

        除了封裝和繼承,多態也是面向對象編程的三大特征之一。簡單地說,多態就是"具有多種形態",它指的是: 即便不知道一個變量所引用的對象到底是什么類型,仍然可以通過這個變量調用方法,在運行過程中根據變量所引用對象的類型,動態地決定調用哪個對象中的方法。如果子類中不存在指定...

      • MRO(上)

        MRO的全稱是Method Resolution Order(方法解析順序),它指的是對于一棵類繼承樹,當調用**層類對象所對應實例對象的方法時,Python解釋器在類繼承樹上搜索方法的順序。對于一棵類繼承樹,可以調用**層類對象的方法mro()或訪問**層類對象的特殊屬性__mro__,獲得這棵類繼承樹的MRO。

      • MRO(下)

        在子類重寫后的方法中通過super()調用父類中被重寫的方法時,在父類中搜索方法的順序基于以該子類為**層類對象的類繼承樹的MRO。如果想調用指定父類中被重寫的方法,可以給super()傳入兩個實參:super(a_type, obj),其中,第一個實參a_type是個類對象,第二個實參obj是個實例對象...

      • 獲取對象的信息之內置函數issubclass()

        內置函數issubclass()用于判斷類對象與類對象之間的關系。內置函數isinstance()用于判斷實例對象與類對象之間的關系。

      • 獲取對象的信息之內置函數type()

        內置函數type()用于獲得指定對象的類型。實例對象的類型是其對應的類對象。類對象的類型是type,也就是說,類對象是type的一個實例對象。

      • 獲取對象的信息之內置函數dir()

        對于制定的類對象或實例對象,可以調用內置函數dir()獲得其所有可以訪問的屬性和方法(包括從父類中繼承的屬性和方法)的列表。類對象與實例對象的結果是有區別的,類對象的結果中不包括實例屬性。

      • 特殊屬性和特殊方法

        調用內置函數dir()后的返回值中,很多屬性和方法都是以雙下劃線__開頭和結尾的,這些屬性和方法中的絕大多數都繼承自類object。以雙下劃線__開頭和結尾的屬性被稱為特殊屬性,以雙下劃線__開頭和結尾的方法被稱為特殊方法。特殊屬性和特殊方法都是系統預定義的,我們自定義的屬性名和...

      • 獲取對象的信息之特殊屬性__dict__

        對于指定的類對象或實例對象,可以訪問特殊屬性__dict__獲得該類對象或實例對象所綁定的所有屬性和方法的字典。其中,字典中的鍵為屬性名或方法名。

      • 獲取對象的信息之反射

        所謂"反射",指的是以字符串的形式來操作(包括:增刪改查)對象的屬性和方法。只有在不知道對象信息的情況下,才會去獲取對象的信息。因此,如果可以直接寫:object.name,就不要寫為getattr(object, 'name')。

      • 類對象的特殊方法之__len__()

        內置函數len()用于返回對象的長度。內置函數len()的實參在默認情況下不能是自定義類對象的實例對象。如果想讓內置函數len()的實參可以是自定義類對象的實例對象,必須在自定義類對象中實現特殊方法__len__()。這樣,調用內置函數len()時,在其內部會自動調用實參所對應類對象的特殊方...

      • 類對象的特殊方法之__iter__()和__next__()

        for-in語句在默認情況下不能用于自定義類對象的實例對象。如果想讓for-in語句可以用于自定義類對象的實例對象,必須在自定義類對象中實現特殊方法__iter__()和__next__()。for-in語句首先會調用特殊方法__iter__()返回一個可迭代對象,然后不斷調用可迭代對象的特殊方法__next__()返...

      • 類對象的特殊方法之__add__()和__radd__()

        標準算術運算符在默認情況下不能用于自定義類對象的實例對象。如果想讓標準算術運算符可以用于自定義類對象的實例對象,必須在自定義類對象中實現標準算術運算符對應的特殊方法。之所以可以使用加法和乘法運算符操作列表,是因為列表所對應的類對象list中實現了+和*對應的特殊方法;...

      • 類對象的特殊方法之__str__()(上)

        類對象的特殊方法之__str__()和__repr__()用于自定義并返回實例對象的字符串表示形式。

      • 類對象的特殊方法之__str__()(下)

        通常情況下,類對象的特殊方法__str__()和__repr__()的實現代碼是一樣的,因此,當實現了其中一個后,可以把其方法名賦值給另一個的方法名。內置函數str()和repr()都返回對象的字符串表示,其區別在于:str()的返回值是給用戶看的,更加用戶友好;repr()的返回值是給程序開發者看的,是為調試服務的。

      • 類對象的特殊方法之__new__()

        當使用"類名([實參])"創建實例對象時,Python解釋器的主要處理過程包括兩大步:1. 調用特殊方法__new__()創建實例對象;2. 調用特殊方法__init__()對創建的實例對象進行初始化。

      • 對象的引用計數(上)

        通常情況下,開發人員無需關心內存的分配和釋放。當創建一個對象時,系統會自動分配一塊內存以存儲該對象的信息。當該對象不再被使用時,系統會進行垃圾回收以自動釋放掉其占用的內存。為了確保使用中的對象不會被銷毀,Python使用引用計數來跟蹤和計算內存中每個對象被引用的次數。...

      • 對象的引用計數(下)

        對象的引用計數減1的情形:1. 對象離開它的作用域,例如:對象所在的函數執行完畢;2. 對象的引用被顯式銷毀;3. 引用對象的變量被賦予新的對象;4. 從容器中刪除對象,或對象所在的容器被銷毀。

      • 類對象的特殊方法之__del__()

        系統會自動銷毀不再需要的對象以釋放內存。因此,當對象被銷毀時通常不需要手動地執行清理工作。但是,當使用我們自己創建的資源時,可能需要執行一些額外的清理工作,例如,如果創建了一個自定義的類對象來打開一個文件并寫入一些數據,可能需要在實例對象被銷毀之前關閉該文件。為...

      • 類對象的特殊方法之__getattr__()

        當訪問實例對象的屬性或方法時,如果指定的屬性或方法不存在,就會拋出AttributeError。當訪問實例對象的屬性或方法時,為了避免指定的屬性或方法不存在時拋出AttributeError,可以在實例對象對應的類對象中實現特殊方法__getattr__()。這樣,當指定的屬性或方法不存在時,會自動調用...

      • 類對象的特殊方法之__getitem__()

        對于自定義類對象的實例對象,在默認情況下,是不能像列表和字典那樣使用中括號語法來操作數據的。如果想讓自定義類對象的實例對象可以像列表和字典那樣,使用中括號語法來操作數據,必須在自定義類對象中實現以下特殊方法:1. __getitem__(self, key) 當執行操作obj[key]...

      • 類對象的特殊方法之__call__()

        如果在類對象中實現了特殊方法__call__(),那么就可以像調用函數一樣直接調用這個類對象的實例對象,從而會自動調用特殊方法__call__()。內置函數callable用于判斷指定對象是否是可調用的。除了函數對象是可調用的之外,對于實現了特殊方法__call__()的類對象,其實例對象也是可調用的。

      • 類對象的特殊屬性之__doc__

        調用內置函數dir得到的類對象的所有屬性中,有一個特殊屬性叫__doc__,用于表示類對象的文檔字符串。與函數的文檔字符串類似,位于類對象的**行的字符串被稱為類對象的文檔字符串,通常用三個引號表示。類對象的文檔字符串是對類對象的功能的簡要描述。在PyCharm,類對象的文檔字符...

      • 類對象的特殊屬性之__slots__

        如果想要對實例對象動態綁定的屬性和方法的名稱進行限制,可以在其對應的類對象中定義特殊屬性__slots__,并給__slots__賦值一個所有元素都為字符串的列表或元組,這樣,對實例對象動態綁定的屬性和方法的名稱就只能來自于__slots__中的元素。默認情況下,訪問實例對象的屬性是通過訪...

      • 模塊的概述

        模塊就是Python中的一個.py文件。可以在模塊中定義變量、函數和類,定義在模塊中的變量、函數和類統稱為模塊的屬性。為了更好地組織和管理模塊,Python引入了包。在某個目錄下添加模塊__init__.py之后,該目錄就變成了包。因此,包是包含特定模塊的特殊目錄。

      • 使用標準庫中的模塊(上)

        Python官方給我們提供了一個標準庫,其中有非常多的模塊可供我們使用,用以完成各種不同的任務。如果想要使用標準庫中的模塊,必須使用import語句進行導入。有兩種導入方式:(1)導入整個模塊(2)導入模塊中的屬性。導入整個模塊的語法格式為:import [包名.]模塊名。如果被導入...

      • 使用標準庫中的模塊(下)

        導入模塊中某個屬性的語法格式為:from [包名.]模塊名 import 屬性名。導入模塊中的屬性之后,就可以直接訪問模塊中的屬性了,而無需添加前綴"[包名.]模塊名",從而使得代碼更加簡潔,但是與添加前綴相比,代碼的可讀性差了一些。導入模塊中多個屬性的語法格式為:from [包名.]模...

      • 使用第三方庫中的模塊(上)

        除了官方提供的標準庫之外,還有非常非常多的第三方庫可供我們使用,用以完成各種不同的任務。如果想要使用第三方庫中的模塊,必須先使用工具(例如:pip3)下載安裝第三方庫,然后通過import語句進行導入。PyPI的全程是:Python Package Index,它是Python官方的、基于Web的、集中...

      • 使用第三方庫中的模塊(中)

        搜索要下載安裝的第三方庫的package name,假設為xxx,則對應的安裝命令為:pip3 install xxx 或:python3 -m pip install xxx。第三方庫中模塊的源代碼也是極好的Python學習資料。導入第三方庫中的模塊的方式與導入標準庫中模塊的方式是完全相同的。

      • 使用第三方庫中的模塊(下)

        1. 創建配置文件setup.py 2. 創建其它文件 3. 打包自己開發的庫 4. 將打包的庫發布到PyPI或共享給別人

      • 安裝和配置Anaconda

        我們經常會用到很多Python的第三方庫。如果使用工具pip3逐個安裝,不僅費時費力,而且還要考慮兼容性。Anaconda是一個基于Python的數據處理和科學計算平臺,它內置了很多非常有用的第三方庫。安裝Anaconda后,相當于把大量的第三方庫都自動安裝好了,因此可以直接導入這些第三方庫中的模塊。

      • 使用當前項目中的模塊

        如果想要使用當前項目中的模塊,必須通過import語句進行導入。有三種導入方式:(1)直接導入(2)絕對導入(3)相對導入

      • 導入的不同模塊中存在相同的屬性

        當導入的不同模塊中存在相同的屬性時,比如:當導入的兩個模塊moda和modb中存在同名的變量v時,兩種正確的導入方式:1. 給導入的屬性起一個別名;2. 導入整個模塊

      • import語句的執行流程

        當使用import語句導入模塊時,解釋器會根據sys模塊的modules屬性值來查找模塊是否已經被導入了。如果模塊已經被導入了,解釋器什么都不做。如果模塊沒有被導入,(1)解釋器按照某種路徑搜索模塊;(2)(可選)將搜索到的模塊編譯為pyc字節碼文件;(3)執行編譯生成的字節碼文件從而運行模塊。

      • 解釋器搜索模塊的路徑

        解釋器搜索模塊的路徑存放在模塊sys的變量path中。 搜索路徑主要由三部分組成:1. 當前目錄;2. 標準庫的目錄;3. 第三方庫的安裝目錄。

      • 搜索到的模塊被編譯為pyc字節碼文件

        當使用import語句導入模塊時,如果模塊還沒有被導入,首先,解釋器會按照某種路徑搜索模塊;其次,搜索到的模塊可能會被編譯為pyc字節碼文件。 當搜索到的模塊**次被導入時,它會被編譯為pyc字節碼文件。pyc字節碼文件存放在與該模塊同目錄下的目錄__pycache__中,其命名格式為...

      • 運行被導入的模塊

        當使用import語句導入模塊時,如果模塊還沒有被導入,首先,解釋器會按照某種路徑搜索模塊;其次,搜索到的模塊可能會被編譯為pyc字節碼文件;最后,執行編譯生成的字節碼文件從而運行模塊。導入包中的模塊時,會先導入包中的__init__.py,因此,在運行被導入的模塊之前,會從最頂層...

      • 調用內置函數dir查看模塊的所有屬性

        當調用內置函數dir時如果模塊作為參數,會返回指定模塊的所有屬性。其中,以雙下劃線__開始和結尾的屬性是模塊的特殊屬性。當調用內置函數dir時如果不帶任何參數,會返回當前模塊的局部作用域中的所有屬性。

      • 重新加載已經被導入的模塊

        使用import語句導入某個模塊后,如果對該模塊做了修改,然后再次使用import語句導入該模塊,那么對模塊的修改不會起任何作用。使用import語句導入某個模塊后,如果對該模塊做了修改,可以調用標準庫函數reload重新加載已經被導入的模塊。

      • 模塊的特殊屬性之__doc__

        調用內置函數dir得到的模塊的所有屬性中,有一個特殊屬性叫__doc__,用于表示模塊的文檔字符串。與函數的文檔字符串類似,位于模塊的**行的字符串被稱為模塊的文檔字符串,通常用三個引號表示。模塊的文檔字符串是對模塊功能的簡要描述。在PyCharm,模塊的文檔字符串用灰色顯示。之...

      • 模塊的特殊屬性之__name__

        調用內置函數dir得到的模塊所有屬性中,有一個特殊屬性叫__name__。對于被導入的模塊,其特殊屬性__name__的值為模塊名。對于直接運行的模塊,其特殊屬性__name__的值為__main__。對于模塊中的測試代碼,通常當直接運行模塊時才需要執行,而當模塊被導入時則不需要執行。因此,可以根...

      • 模塊內的數據訪問控制之單下劃線

        為了在某種程度上實現模塊內的數據訪問控制,可以在模塊內的某些屬性前添加單下劃線_。這樣,就無法使用語句"from 模塊名 import *"導入相應的屬性了,但是,使用語句"import 模塊名"仍然可以導入相應的屬性。

      • 模塊內的數據訪問控制之特殊屬性__all__

        為了在某種程度上實現模塊內的數據訪問控制,還可以在模塊內定義特殊屬性__all__。這樣,使用語句"from 模塊名 import *"只能導入特殊屬性__all__中定義的屬性,但是,使用語句"import 模塊名"仍然可以導入所有的屬性。當使用語句"from 模塊名 import *"導入屬性時,如果既在...

      • 生成器(上)

        為什么前面的課程中沒有講解元組生成式?因為根本就不存在元組生成式!元組是不可變類型的對象,無法在代碼中動態地創建元組對象。生成器中保存的并不是其對應的所有元素,而是如何推算出所有元素的算法。將生成器用于for-in語句時,元素是在循環的過程中不斷被推算出來的。將生成器...

      • 生成器(下)

        當推算的算法比較復雜時,還可以使用生成器函數得到生成器。生成器函數中通過關鍵字yield返回推算出的元素。生成器函數與普通函數的區別在于:當調用內置函數next()或使用for-in語句進行迭代時,執行完yield語句就會將生成器函數掛起,下次會從掛起的地方繼續執行。

      • 迭代器(上)

        可以用于for-in語句的對象被稱為可迭代(Iterable)對象。例如:range、列表、元組、字符串、字典、集合、生成器,都是可迭代對象。可以調用內置函數isinstance()判斷一個對象是否是可迭代對象。標準庫模塊collections中的類Iterable用于表示可迭代對象。可以調用內置函數iter()把不...

      • 迭代器(下)

        如果一個對象同時實現了特殊方法__iter__()和__next__(),那么該對象也被稱為迭代器對象。如果將該對象用于for-in語句,for-in語句首先會調用特殊方法__iter__()返回一個可迭代對象,然后不斷調用該可迭代對象的特殊方法__next__()返回下一次迭代的值,直到遇到StopIteration時退出循環。

      • 異常的概述

        異常指的是程序在沒有語法錯誤的前提下,在運行期間產生的特定錯誤。每個特定錯誤都對應一個異常類對象。當產生某個特定錯誤時,其對應的異常類對象的實例對象就會被拋出。如果在程序中對拋出的異常實例對象不進行捕獲和處理,程序就會停止運行,并且打印錯誤的詳細信息,包括:1. T...

      • 使用try-except語句捕獲和處理異常(上)

        程序在運行期間產生異常時,為了讓程序能夠繼續執行,可以對拋出的異常實例對象進行捕獲和處理,這是通過try-except語句實現的:把可能會產生異常的代碼放在try語句塊中以捕獲異常實例對象,把處理異常的代碼放在由若干個except子句組成的except語句塊中。

      • 使用try-except語句捕獲和處理異常(下)

        如果拋出的異常實例對象所對應的類對象是except子句中異常類對象的子類,那么該except子句也會被匹配。當try語句塊中產生異常時,會從上到下依次查找是否有匹配的except子句,只要找到一個匹配的except子句,則不會再查找剩余的except子句。因此,要注意各個except子句的順序。當多個...

      • 在try-except語句的后面添加else從句

        可以在try-except語句的后面添加else從句,這樣,如果try語句塊中的代碼沒有產生異常,就會執行else從句。

      • 在try-except語句的后面添加finally從句

        可以在try-except語句的后面添加finally從句,這樣,finally從句中的代碼總會被執行。因為finally從句總會被執行,所以通常在finally從句中釋放資源,例如:關閉文件、關閉網絡連接等。可以在try-except語句的后面同時添加else從句和finally從句。

      • 使用raise語句手動拋出異常

        可以使用raise語句手動拋出異常實例對象。如果在except語句塊中不想對異常實例對象進行處理,可以使用關鍵字raise將其原樣拋出 如果在except語句塊中不想對異常實例對象進行處理,還可以使用raise語句手動拋出另外一個異常類對象的實例對象。

      • 自定義異常

        盡管Python內置的異常類對象可以滿足我們絕大部分的需求,但是有時候我們可能想要創建自定義的異常類對象。正如所有內置異常類對象的基類是Exception,自定義異常類對象只需要繼承Exception或其子類。

      • 異常和函數

        當函數內發生異常時,異常實例對象會被拋給該函數的調用者,如果該函數的調用者沒有捕獲和處理,則繼續拋給上一層的調用者,這樣一直向上拋,最后會被Python解釋器捕獲。在異常實例對象被向上拋的過程中,可以選擇在合適的層對異常實例對象進行捕獲和處理,而不需要在每一層進行捕獲...

      • 獲取異常信息

        在捕獲異常實例對象后,可以調用標準庫模塊sys中的函數exc_info以獲取異常的相關信息。該函數的返回值是一個包含三個元素的元組,這三個元素分別表示:異常的類型、異常的錯誤信息和包含異常調用堆棧的跟蹤信息的Traceback對象。為了進一步提取Traceback對象中包含的信息,可以調用標...

      • with語句

        如果一個類對象實現了特殊方法__enter__()和__exit__(),那么就稱這個類對象遵守了上下文管理協議,同時,這個類對象的實例對象被稱為上下文管理器。with語句會讓上下文管理器創建一個運行時上下文,當進入運行時上下文時自動調用特殊方法__enter__(),當離開運行時上下文時自動調用...

      • 打開文件

        把數據存儲到文件中是數據存儲的方式之一。如何將數據寫入文件,并將寫入到文件中的數據讀取出來呢?讀寫文件之前,必須先打開文件。內置函數open()用于打開文件,第一個參數是文件的路徑,必須要指定。既可以指定絕對路徑,也可以指定相對路徑。第二個參數是文件的打開方式,默認值...

      • 讀文件(上)

        讀文件之前,必須先打開文件。可以調用內置函數open()并以只讀方式或讀寫方式打開文件。返回的文件對象有三個用于讀文件的方法:1. read([size]) 如果不傳參數,讀到文件尾。如果傳入參數,size用于指定字節數,當指定的字節數小于讀到文件尾的字節數時,讀取指定的字節數;當...

      • 讀文件(下)

        如果文件較大,調用readlines()一次性讀取整個文件會導致內存占用較大,因此,**多次調用readlines(size)。指定的size不要超過默認緩沖區的大小。

      • 寫文件

        寫文件之前,必須先打開文件。可以調用內置函數open()并以只寫方式、追加方式或讀寫方式打開文件。這樣,返回的文件對象有兩個用于寫文件的方法。

      • 關閉文件

        文件在使用完畢后必須要關閉,這是因為文件對象會占用操作系統的資源,并且操作系統在某一時刻所能打開的文件數量也是有限的。讀文件或寫文件時都有可能發生異常,從而導致方法close()不會被調用。為了保證方法close()總能被調用,可以把讀文件或寫文件的操作放在try語句塊中,把方法...

      • 文件指針

        任何文件對象都有一個文件指針,指向文件中的某個位置。讀寫文件時,是從文件指針的當前位置開始讀寫的,在讀寫的過程中,文件指針會隨之往后移動。以追加方式打開文件后,文件指針指向文件的結尾位置;以其它方式打開文件后,文件指針指向文件的起始位置。可以調用文件對象的方法tel...

      • 函數的一些重要特性

        在Python中,一切皆為對象。所以,函數也是對象,從而函數可以被賦值給變量。一個函數可以作為另一個函數的實參。一個函數可以作為另一個函數的返回值。一個函數可以嵌套定義在另一個函數中。

      • lambda表達式

        lambda表達式就是匿名簡化版的函數。在Python中,一切皆為對象。所以,lambda表達式也是對象,從而lambda表達式可以被賦值給變量。因為lambda表達式是匿名簡化版的函數,所以,lambda表達式可以作為函數的實參。因為lambda表達式是匿名簡化版的函數,所以,lambda表達式可以作為函數的返回值。

      • 偏函數(上)

        定義函數時,可以給形參設置默認值,從而簡化函數的調用,只有與默認值不符的形參才需要傳遞額外的實參。偏函數也可以簡化函數的調用。

      • 偏函數(下)

        可以將某個已有的函數轉換為一個新函數,在轉換的過程中指定最前面的若干個位置實參以及關鍵字實參,這樣,當調用新函數的時候,在其內部調用的仍然是轉換前的函數,在傳遞實參時只需要傳遞剩余的位置實參和關鍵字實參就可以了。轉換后的新函數被稱為轉換前的函數的偏函數。借助于標...

      • 閉包(上)

        如果在一個函數的內部嵌套定義了另外一個函數(姑且將外部的函數和內部的函數分別稱之為外函數和內函數),內函數中引用了外函數中的變量,并且外函數的返回值是內函數,這樣,就構成了一個閉包。通常情況下,在函數調用結束后,函數內定義的變量將不再可用。但是,對于閉包而言,在...

      • 閉包(下)

        在默認情況下,在內函數中不能修改外函數中的變量引用的對象(如果引用的對象是可變類型的,可以修改對象的內容)。如果想在內函數中修改外函數中的變量所引用的對象,可以在內函數中使用關鍵字nonlocal對變量進行聲明,從而表明在內函數中并沒有重新定義一個新的同名變量,而是使用...

      • 變量的作用域(上)

        變量的作用域指的是變量起作用的范圍。變量的作用域是由定義變量的位置決定的。

      • 變量的作用域(中)

        當在某個作用域中訪問變量時,會按照LEGB的順序依次搜索該作用域及其后面的所有作用域,只要找到了則停止搜索,如果沒找到則拋出NameError。因此,如果不同的作用域中定義了同名的變量,根據LEGB的搜索順序,前面作用域中的變量會屏蔽掉后面作用域中定義的同名變量。

      • 變量的作用域(下)

        在默認情況下,在局部作用域或嵌套作用域中不能修改全局變量所引用的對象(如果引用的對象是可變類型的,可以修改對象的內容)。如果想在局部作用域或嵌套作用域中修改全局變量所引用的對象,可以在局部作用域或嵌套作用域中使用關鍵字global對變量進行聲明,從而表明在局部作用域或...

      • 內置函數locals()和globals()

        命名空間指的是某個作用域內所有名字和值的映射,用字典來表示。內置函數locals()可以返回其所在局部作用域的命名空間。內置函數globals()可以返回其所在全局作用域的命名空間。locals()并沒有返回實際的命名空間,而是返回值的拷貝,所以,通過locals()修改某個名字對應的值,對于實...

      • 函數裝飾器(上)

        對于某個函數,如果我們希望在不改變該函數代碼的前提下,為該函數增加額外的功能,那么就可以使用裝飾器來裝飾該函數。裝飾器是一個函數,裝飾器接收一個函數作為參數(傳入的實參是被裝飾的函數),裝飾器的內部嵌套定義另一個函數,內函數中會引用裝飾器的參數,并且裝飾器的返回...

      • 函數裝飾器(下)

        如果希望被裝飾函數的特殊屬性__name__的值為其函數名,而不是裝飾器的內函數的函數名,可以在裝飾器的內函數前面添加另外一個裝飾器:@functools.wraps(裝飾器的參數名),其中functools.wraps指的是標準庫模塊functools中的函數wraps。把裝飾器應用到被裝飾函數時,還可以傳遞額外的...

      加載中
      所屬章節 資料名稱 文件大小 下載
      相關資料推薦

      暫時還沒有學習資料~

      5

        1
        非常糟

        2
        很差

        3
        一般

        4
        很好

        5
        非常好

        • 0%
        • 0%
        • 0%
        • 0%
        • 0%
        加載中
        沒有了哦~

        講師介紹

        張榮超

        張榮超

        講師評分:5.0

        曾就職于聯想、HTC、阿里巴巴,擔任高級軟件開發工程師、Team Leader、技術主管、高級技術培訓講師。豐富的Python、Swift、Kotlin開發及培訓經驗。

        講師推薦專題

        專題一 圖解Python視頻教程

        3門課 立省:¥97.8 合計:¥518.00 購買

        官方交流群

        51CTO學院Python實戰群(325935753)

        立即加入

        920177人學習過

        訂閱專欄更多

        推薦圖書

        7日學霸榜 有920177人與你一起學習

        課程介紹

        課程大綱

        學習資料

        學員評價

        ¥198.00

        ¥ 158.40

        課程評價

        發表客觀評價,最多可得35學分(會員可得70學分)

        圖解Python(高級篇)

        該課程已有 人評價

        課程與描述相符

        老師的講解表達

        老師的答疑服務

        匿名

        在線
        客服
        在線
        客服

        下載Android客戶端

        下載iphone 客戶端

        返回
        頂部
        六合在线|6合宝典旧版怎么下载|王中王鉄算盘历史开奖记录 www199544com| 蓝月亮精选枓二四六| 今天開什麽馬獎結果| 香港赛马会奖卷有限公司正版四不像| 2020白小姐黑白114图库| 平特肖www130999COM| 香港马六开奖结果| 2020年王中王资料 一肖中特马心水 高手 论坛| 复试三中三计划| 洋洋高手论坛—44496| 2020马报歇后语| 香港马会2020年92期开奖结果| 天下彩免费资料网站| 香港新报跑狗图2020| 2020年香港013期开奖结果| 偷拍女侧RXXⅩ| 79805深圳高手心水论坛| 发财玄机图2020年91期| 当年闽发证券论坛的高手到哪里| 白小姐传密87期| 香港最快开奖结果査询| 700元三中三赔多少钱| 2020.949494香港码开奖结果| 195252соm慈善网雷锋网| 2020香港开奖直播结果 今晚| 白小姐精品玄機笑話| 香港开奖录| 常年發表高手論壇| 中特料香港开奖历史记录| 天下彩票玖龍內慕免費資料大全| 深圳高手主论坛555149| 66456博彩公司老钱柜| 心水高手3D论坛| XXycc香港六合彩資料| 香港码开奖结果走势图 百度 百度 百度| 1118kjzcom開獎| 香港金凤凰2020开奖结果| 香港馬會面試| 118图库36期| 排列五头尾高手论坛| 二四六天天好彩免費資料大全168|