摘要: 迭代器 我們已經知道可以直接作用於 for 循環的數據類型有以下幾種: 一類是集合數據類型: list 、 tuple 、 dict 、 set 、 str 、 bytes 等。 另一類是 generator ,包括生成器和帶 yield 的 generator function。 這些可以直接作用 阅读全文
posted @ 2017-12-03 13:43 丹尼爾 阅读(222) 评论(0) 推荐(0) 编辑
摘要: 目前我們已經大致上都了解生成器了,但要怎麼實際應用呢?!接下來就要舉個例子 yield 保存了這個函數的中斷狀態,返回當前這個狀態的值,並且把函數停在這,想什麼時候回來執行就什麼時候回來執行。 通過yield實現單綫程的情況下,實現並發運算的效果 生成一個消費者叫Tony,其實上面代碼就是一個生成器 阅读全文
posted @ 2017-12-03 13:42 丹尼爾 阅读(106) 评论(0) 推荐(0) 编辑
摘要: 生成器 什麼是列表生成式? 這個是基本的列表 也可以用另一種方式來表示 但這二個列表有什麼差別嗎? 第一種列表數據已經是寫死了,不能改變,第二種列表在產生的時候,是動態去產生的,而第二種寫法,也可以用下面代碼來實現。 嗯!效果跟第二種寫法的結果是一樣的,所以第二種寫法,其實就是 ,主要的目的就是把代 阅读全文
posted @ 2017-12-03 13:41 丹尼爾 阅读(203) 评论(0) 推荐(0) 编辑
摘要: 裝飾器 高潮版 現在我們來模擬一個網站的使用者登入,透過 的方式來實現登入驗証功能。 條件 首頁不需要登入就可以使用 會員頁需要登入才能使用 討論區需要登入才能使用 先構思一個簡單版的。 上面代碼已經完成,建立三個頁面,而且透過 裝飾器,把會員頁及討論區都有加入登入驗証的功能,接下來就來寫 這個裝飾 阅读全文
posted @ 2017-08-02 22:42 丹尼爾 阅读(215) 评论(0) 推荐(0) 编辑
摘要: 裝飾器 中高潮 那如果想要在 裡傳參數的話,那應該要怎麼做呢?還記得先前提到的 "函數的非固定參數" ,其實很簡單 因為 、 ,其實 ,所以要修改 ,而 ,也請修改成 ,這樣就可以傳參數了,如此一來,就不管有沒有傳參數進來,全都可以正常去調用 。 阅读全文
posted @ 2017-08-02 22:41 丹尼爾 阅读(95) 评论(0) 推荐(0) 编辑
摘要: 裝飾器 小高潮 請使用下面的代碼,再不修改源代碼下,替foo函數跟bar函數新增一個功能 還記得之前說的 "裝飾器前奏(高階函數)" 的規則嗎? 規則1: 規則2: 首先,定義一個函數,來做為新功能的實現。 在上面的代碼中,聲明一個新的函數叫 ,主要是實現的功能是 ,調用方式使用 ,這樣會把 給帶進 阅读全文
posted @ 2017-06-12 23:19 丹尼爾 阅读(168) 评论(0) 推荐(0) 编辑
摘要: 嵌套函數(nested) 什麼是嵌套函數?就是在函數裡面在去定義一個函數,這就是嵌套函數。 如果想要調用bar函數的話,要怎麼調用?下面代碼能執行嗎? 顯然是不行的,還記得之前說的 "局部變量" 嘛?!因為 在這個嵌套函數中是一個 的關係,只在foo函數這個作用域裡生效,所以不能在外面調用,只能在內 阅读全文
posted @ 2017-06-08 14:07 丹尼爾 阅读(352) 评论(0) 推荐(0) 编辑
摘要: 裝飾器 定義 原則 1. 不能修改被裝飾的函數的源代碼 2. 不能修改被裝飾的函數的調用方式 簡單示範一下,什麼是 實現裝飾器知識須知 1. 函數就是 2. 高階函數 把一個函數名當做實際參數傳給另一個函數, 。 返回值中包含函數名, 返回值可以是『字符串、數字、列表、元組、函數名』 3. 巢狀(嵌 阅读全文
posted @ 2017-06-02 00:27 丹尼爾 阅读(141) 评论(0) 推荐(0) 编辑
摘要: 函數就是變量 下面就用代碼來解釋一下 是什麼意思! 觀察一下這個代碼,能不能正常執行? 嗯!發現出現了一個錯誤 , 這是因為 這個函數沒有被定義,所以才會報錯,那要怎麼解決這問題呢!?其實很簡單,就在寫一個函數叫 就行了,那我們來寫寫看吧! 寫法一: 把bar函數定義在foo函數之前,看看能不能正常 阅读全文
posted @ 2017-06-02 00:27 丹尼爾 阅读(137) 评论(0) 推荐(0) 编辑
摘要: 高階函數 符合高階函數規則一 寫一個高階函數的代碼,並且去執行觀察一下 結果發現是打印出一個記憶體位址,那再觀察一下,下面二個寫法的代碼會有什麼不同? 寫法一: 調用hello函數時,不加() 寫法二: 調用hello函數時,加() 有觀察出來什麼嗎?請看圖解 小結 寫法一,其實是指的是門牌號碼,這 阅读全文
posted @ 2017-06-02 00:27 丹尼爾 阅读(199) 评论(0) 推荐(0) 编辑