nonlocal和global關鍵字

回顧:

1. Python的函數的概述函數定義函數調用2. Python函數中參數的類型和返回值形參和實參形參類型:普通參數: 實參的傳遞的順序和個數和形參一直關鍵字參數: 指定傳遞的實參被特定形參接收默認參數: 形參中設定當前參數的默認值可以不傳遞設定了默認參數的實參不定長參數:一個形參能夠接收任意多個實參*args:普通普通收集參數的**kwargs:關鍵字收集參數實參類型:傳遞方式普通實參關鍵字實參返回值:return關鍵字返回數據結果結束當前函數return返回多個結果數據,數據類型tuple過程式函數和非過程式函數

3. 函數文檔的使用

1.使用help()方法來查看某一個函數的說明和幫助文檔
2. 函數名稱.__doc__: 返回說明文檔自定義函數文檔:格式:在定義函數后用'''三引號加上注釋(def 下一行)       優點:方便與后期的維護提高代碼的可讀性

4.參數的傳遞

實際參數: 數據對象對象的類型:可變對象: list dict不可變對象: number, tuple, string參數的傳遞:可變的對象:地址傳遞不可變對象:值傳遞                                                             

5.變量的作用域

全局變量:在內置哈數中,可以調用在內置函數中,不可修改
局部變量:在內置函數中,可以調用在函數外調用,使用global修飾后,即可訪問

作業解答

回顧

1.變量定義的語法
2.標識符命名規則
3.數據類型
4.常見的運算符
5.分支結構
6.循環結構
7.函數效率: 總結 + 計劃

今日概要

1.python中變量的作用域
2.python中函數的遞歸
3.python的閉包

一、python中變量的作用域

1.global關鍵字將局部變量的作用域提升全局變量1.變量的有效范圍向函數內部傳遞2.如果其他函數內部沒有使用global,當前函數可以訪問外部的全局變量,不能修改3.在單簽的函數內部使用global修飾外部變量,在當前哈數 中可以修改4.其他的哈數對于使用global修飾外部變量的函數來說,沒有提升的效果2.nonlocal 關鍵字在內置函數(嵌套的函數中)使用1.在局保護函數中的局部使用2.將當前哈數中的變量的作用域提升到上一層,僅僅提升一層,在此層中必要得聲明3.允許和global一起使用

綜合案例

def one():def two():num="11"   #在函數two的局部變量def three():nonlocal numnum="22"  # 將局部函數three的變量num向上提升,數據同步def four():global num  num="33"  # 將局部函數four的變量提升到全局num="00"     two()print(num) # 00three()print(num) # 22four()print(num) # 22
one()
print(num) # 33  

二、函數的遞歸

1.概念在哈數的哈數體中調用該函數本省(自己調用自己)2.案例求階乘求fib數列        
3.注意事項1.查找遞歸的規則,設置退出遞歸的條件2.使用遞歸可能影響程序的執行性能(賊費性能)3.使問題簡單化(盡量不要使用)
4.練習1.使用遞歸求階乘2.(擴展)求Fib數列第n為的值?        

三、python中閉包

1.概念在一個外部函數中定義一個內部函數,函數的嵌套內部函數使用了外部函數的變量,并且外部函數的返回值是內部函數的引用外函數傳遞給內函數的數據,不會隨著外部函數執行完就沒了,就好像綁定在了內部函數中似的
2.修改內函數中的數據需要使用nonlocal進行修飾
3.閉包的優點提高代碼的復用性對數據進行存儲和封裝,提高數據安全性

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/455555.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/455555.shtml
英文地址,請注明出處:http://en.pswp.cn/news/455555.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

小波在圖像視頻壓縮領域中的應用分析【轉貼】

到目前為止,小波的最多應用一直是數字圖像壓縮。它們是新JPEG2000數字圖像標準的核心。使用小波變換的優勢主要有如下幾個方面。 1、基于小波變換的方法能有效地保留原始圖像的細節和邊緣,重建圖像時不會造成“振鈴”效應。 2、基于小波變換的方法采用…

iOS開發人員不容錯過的10大工具

內容簡介 1、iOS簡介 2、iOS開發十大實用工具之開發環境 3、iOS開發十大實用工具之圖標設計 4、iOS開發十大實用工具之原型設計 5、iOS開發十大實用工具之演示工具 6、iOS開發十大實用工具之視頻制作 7、iOS開發十大實用工具之分析工具 iOS簡介 說起iOS,自然不必多介…

博弈論之Nim游戲

OI里,博弈論就是兩個聰明絕頂的人玩不公平的游戲。 Nim游戲是組合游戲(Combinatorial Games)的一種,屬于“Impartial Combinatorial Games”(以下簡稱ICG)。 通常的Nim游戲的定義是這樣的:有若干堆石子,每堆…

python標準庫sys_Python標準庫之Sys模塊使用詳解

sys 模塊提供了許多函數和變量來處理 Python 運行時環境的不同部分. 處理命令行參數 在解釋器啟動后, argv 列表包含了傳遞給腳本的所有參數, 列表的第一個元素為腳本自身的名稱. 使用sys模塊獲得腳本的參數 復制代碼代碼如下: print "script name is", sys.argv[0] …

python3.7知識點匯總

Python3.7從零開始學 —|進入Python3.7的精彩世界 —|---|Python起源 —|---|—|Python作者簡介 —|---|—|---|Guido von Rossum,荷蘭人。1982年,Guido從阿姆斯特丹大學獲得了數學和計算機碩士學位。1989年,他創立了Python語言。 —|---|—|…

塊編碼、對象編碼、小波編碼、分布式編碼【轉貼】

人類獲取的信息中70%來自于視覺,視頻信息在多媒體信息中占有重要地位;同時視頻數據冗余度最大,經壓縮處理后的視頻質量高低是決定多媒體服務質量的關鍵因素。因此數字視頻技術是多媒體應用的核心技術,對視頻編碼的研究已成為信息技…

cookie練習

cookie是網站便于辨別用戶身份,進行 session 跟蹤而儲存在用戶本地終端上的數據。 cookie通過jsdom操作完成。 添加cookie: document.cookie ‘name val’;前一個是name,后一個是val。添加的時間是永久的。 document.cookie ‘name val ;…

算法學習系列(十):用數組模擬鏈表、雙鏈表、棧、隊列、單調棧、單調隊列

目錄 引言一、數組模擬鏈表1.模板2.例題3.測試 二、數組模擬雙鏈表1.模板2.例題3.測試 三、數組模擬棧1.模板2.例題3.測試 四、數組模擬隊列1.模板2.例題3.測試 五、數組模擬單調棧1.例題模板2.測試 六、數組模擬單調隊列1.例題模板2.測試 引言 首先說一下為什么要拿數組來模擬…

為什么你的路由器穿墻能力差?看完秒懂

1、信號弱賴我咯? 不管你承認與否,只要有墻家中就會存有信號死角,不要小看一墻之隔。如何讓路由器的信號增強? 網上一搜旁門左道真不少,什么調整天線尋找合理角度,又或是用易拉罐DIY一個信號放大器,然鵝并非簡單的將…

fish工具_Python程序員使用哪些開發工具

Python程序員使用哪些開發工具?很多Python學習者想必都會有如下感悟:最開始學習Python的時候,因為沒有去探索好用的工具,吃了很多苦頭。后來工作中深刻體會到,合理使用開發的工具的便利和高效。今天,北京學佳澳小編總…

[shiro學習筆記]第二節 shiro與web融合實現一個簡單的授權認證

本文地址:http://blog.csdn.net/sushengmiyan/article/details/39933993shiro官網: http://shiro.apache.org/shiro中文手冊:http://wenku.baidu.com/link?urlZnnwOHFP20LTyX5ILKpd_P94hICe9Ga154KLj_3cCDXpJWhw5Evxt7sfr0B5QSZYXOKqG_FtHeD-RwQvI5ozyT…

Web安全之Cookie劫持

1.Cookie是什么? 2.竊取的原理是什么? 3.系統如何防Cookie劫持呢? 看完這三個回答,你就明白哪位傳奇大俠是如何成功的!!! Cookie: HTTP天然是無狀態的協議,為了維持和跟蹤用戶的狀態,引入了Cookie和Session。Cookie包含了瀏覽器客戶端的用…

python中關于深拷貝和淺拷貝的詳解

python中關于深拷貝和淺拷貝的詳解 概述 在python的語法中,有兩種變量的拷貝方式 一種是深拷貝,一種是淺拷貝 我們先說深拷貝 語法 這里需要通過導入系統的copy模塊中的deepcopy才可以 import copy 新的對象 copy.deepcopy(被拷貝對象) 解釋 深拷貝是將操作對象整體復制…

運動估計簡介

運動估計( Motion Estimation) 維基百科鏈接:http://en.wikipedia.org/wiki/Motion_estimation運動估計的應用有很多,最初的應用的領域是視頻的編碼。運動估計算法一般分為: 像素遞歸法pel-recursive algorithm (PRA)和塊匹配法 block-matching algorith…

tutte定理證明hall定理_深入淺出|中心極限定理(Central Limit Theorem)及證明

在介紹統計學中最重要的定理之一-中心極限定理-之前&#xff0c;我們先來想一個問題&#xff1a;統計學的目的是什么&#xff1f;根據<Mathematical statistics with application 7th Edition>書中所寫的&#xff1a;統計學的目的是基于從總體中的樣本所獲得的信息&#…

讓數據中心變得更加友好

通常來說&#xff0c;數據中心是一個安全防護十分嚴密的地方&#xff0c;其安全功能的設計旨在阻止不速之客的訪問。但專家認為數據中心可以變得更加友好&#xff0c;因為數據中心需要在人類社會中發揮更大的作用。 數據中心的整體概念是一種可以通過云計算或其他方法進行遠程訪…

traceroute/tracert--獲取網絡路由路徑

traceroute 是用來檢測發出數據包的主機到目標主機之間所經過的網關數量的工具。traceroute 的原理是試圖以最小的TTL發出探測包來跟蹤數據包到達目標主機所經過的網關&#xff0c;然后監聽一個來自網關ICMP的應答。發送數據包的大小默認為 38個字節。 通過traceroute我們可以知…

使用Cygwin實現vlc 1.0.5的wince移植

本文完全參照了天將降的博客文章&#xff0c;寫于此以作來日備忘之用&#xff0c;原文地址&#xff1a;http://bk6.blog.163.com/blog/static/24498560201051193449196/ 第一步&#xff1a;下載安裝Cygwin。筆者建議大家不要安裝不完整的版本&#xff0c;以免出現不必要的錯誤…

andriod studio 運行 無結果_華為物聯網操作系統LiteOS內核教程01——IoT-Studio介紹及安裝...

1. 物聯網一站式開發工具 —— IoT StudioIoT Studio 是支持 LiteOS 嵌入式系統軟件開發的工具&#xff0c;提供了代碼編輯、編譯、燒錄 及調試等一站式開發體驗&#xff0c;支持 C、C、匯編等多種開發語言&#xff0c;讓您快速&#xff0c;高效地進 行物聯網開發。2. IoT Stud…

5G通信技術能否終結商用WiFi?

科技創新與體育發展可謂相生相伴&#xff0c;而如今科技在體育領域的應用也越來越廣泛。本周的話題關于5G技術與球場&#xff0c;作者為英國體育娛樂營銷咨詢公司Stadia Solutions的聯席首席執行官戈登坎貝爾。在坎貝爾先生看來&#xff0c;球場Wi-Fi賦予了俱樂部對數據的掌控力…