日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
如何正確的使用Python函數(shù)

本文主要講述Python函數(shù)的問題,怎樣創(chuàng)建Python函數(shù)等問題,這些內(nèi)容都是一些門戶網(wǎng)站和技術論壇找到的,中間可能有不少錯誤是我沒有挑出的,歡迎大家指正。

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

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

 
 
 
 
  1. def foo():
  2.     m = 3
  3.     def bar():
  4.         n = 4
  5.         print m + n
  6.     print m
  7.  bar()

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

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

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

 
 
 
 
  1. def hellocounter (name):
  2.     count=[0]
  3.     def counter():
  4.         count[0]+=1
  5.         print 'Hello,',name,',',str(count[0])+' access!'
  6.     return counter
  7. hello = hellocounter('ysisl')
  8. hello()
  9. hello()
  10. hello()
  11. Console output: 
  12.  Hello, ysisl , 1 access!
  13.  Hello, ysisl , 2 access!
  14.  Hello, ysisl , 3 access!

網(wǎng)頁名稱:如何正確的使用Python函數(shù)
新聞來源:http://m.5511xx.com/article/cocpcoh.html