python closure閉包 lambda表達式

  • 在函數中改變全局變量的值,使用什麼關鍵字
    • global
  • 在嵌套的函數中,若是但願在內部函數修改外部函數的局部變量,應使用什麼關鍵字
    • nonlocal
  • 請問爲何代碼A沒有報錯,可是代碼B卻報錯了?贏如何修改?
    • 由於代碼B中,local variable 'var' referenced before assignment,說的是變量var沒有被定義就拿來使用,因此報錯
    • outside()函數中有一個var,inside()函數中也有一個var,python爲了保護變量的做用域,故將outside()的var變量屏蔽起來,所以此時是沒法訪問到外層的var變量的
  • 答案:github.com/LiuJiYangYa…

lambda表達式

  • 匿名函數python

    • Python寫一些執行腳本時,使用匿名函數就能夠省下定義函數過程,好比說咱們只是須要寫個簡單的腳原本管理服務器時間,咱們就不須要專門定義一個函數而後再寫調用,使用匿名函數就可使得代碼更加精簡。
    • 對於一些比較抽象而且整個程序執行下來只須要調用一兩次的函數,有時候給函數起個名字也是比較頭疼的問題,使用匿名函數就不須要考慮命名的問題了
    • 簡化代碼的可讀性,因爲普通的屌絲函數閱讀常常要跳到開頭def定義部分,使用匿名函數函數能夠省去這樣的步驟。
  • lambda表達式的做用git

    • Python寫一些執行腳本時,使用lambda就能夠省下定義函數的過程,好比說咱們只是須要寫個簡單的腳原本管理服務器時間,咱們就不須要專門定義一個函數而後再寫調用,使用lambda就可使得代碼更加精簡。
    • 對於一些比較抽象而且整個程序執行下來只須要調用一兩次的函數,有時候給函數起個名字也是比較頭痛的問題,使用lambda就不須要考慮命名的問題了
    • 簡化代碼的可讀性,因爲普通的屌絲函數閱讀常常要跳到開頭def定義部分,使用lambda函數能夠省去這樣的步驟
  • 兩個牛逼的BIFgithub

    • filter()用法:filter(function or None, iterable),有兩個參數,第二個參數爲可迭代的數據,第一個參數能夠爲None或者函數,當爲None時,將iterable中爲真的數據挑選出來,當爲function時,將iterable中知足function的結果爲真的數據挑選出來。
    • map()用法:map(func, *iterables),將可迭代序列的每個數據做爲函數的參數進行運算加工,直到可迭代序列的每個元素都加工完畢,返回全部加工後的元素構成的新序列。
  • 答案:github.com/LiuJiYangYa…服務器

相關文章
相關標籤/搜索