中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python中函數的用法

發布時間:2021-08-25 15:11:28 來源:億速云 閱讀:120 作者:chen 欄目:編程語言

這篇文章主要介紹“Python中函數的用法”,在日常操作中,相信很多人在Python中函數的用法問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Python中函數的用法”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

語法上看比較簡單,但是用處卻是相當廣泛的。在Python 2.1版本以前,只有全局域和局部作用域,而在2.1以后的版本中我們可以使用靜態嵌套域,如像下面這樣的嵌套函數中,在以前,內部函數是不能訪問外部Python函數作用域中的變量。

Python中函數的用法

在Python 2.1版本以前,只有全局域和局部作用域,而在2.1以后的版本中我們可以使用靜態嵌套域,如像下面這樣的嵌套Python函數中,在以前,內部Python函數是不能訪問外部函數作用域中的變量的,def foo():

def foo():      m = 3     def bar():          n = 4         print m + n      print m   bar()

而在現在的版本中可以***運行,而bar()中的 m 就是一個既不屬于全局域又不屬于局部域的閉包變量,它存活在一個Python函數的名稱空間和作用域---嵌套作用域。而在閉包中對嵌套作用域中的訪問規則與上面討論的Global是一樣的。即在對閉包變量 m 的重新聲明之前引用 m 都會引發異常。

為什么會這樣呢?其實是因為m的類型有關,我們知道Pyhton中的基本數據類型分為可變和不可變,對于不可變類型的賦值,其實是重新定義一個新的變量對象。并深拷貝原對象到新對象,參考str類型說明。 如果將上面的 m 聲明成可變類型list,那就不會產生這個異常了。

關于可變類型與不可變類型的說明,這里就不展開說了,大家可以看API Document下面舉一個閉包的實際例子:

def hellocounter (name):      count=[0]      def counter():          count[0]+=1          print 'Hello,',name,',',str(count[0])+' access!'      return counter   hello = hellocounter('ysisl')  hello()  hello()  hello()   Console output:    Hello, ysisl , 1 access!   Hello, ysisl , 2 access!   Hello, ysisl , 3 access!

到此,關于“Python中函數的用法”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

永和县| 资阳市| 桑植县| 康定县| 如皋市| 新民市| 湾仔区| 运城市| 修文县| 视频| 吉隆县| 金寨县| 景谷| 贡山| 松原市| 瑞金市| 蓝山县| 盐津县| 海淀区| 牡丹江市| 梁山县| 微山县| 东乡县| 南阳市| 德安县| 黄梅县| 大安市| 炎陵县| 德惠市| 五寨县| 昌江| 舞阳县| 宣化县| 栾城县| 兰州市| 绵竹市| 大洼县| 太仆寺旗| 康马县| 于都县| 隆子县|