函數(shù)(三)

0. 匿名函數(shù)


  • 概念:lambda函數(shù) 酌伊,指 沒有名字 的函數(shù)
  • 形式:
    1. 格式:lambda 參數(shù)1, 參數(shù)2, ...: 表達式
    
    2. 限制:
       (1) 只能寫一個表達式番甩,不能直接return
       (2) 表達式的結(jié)果就是返回值
       (3) 只適用于一些簡單的操作處理
    
  • 場景
    l = [{"name": "wxx", "age": 18}, {"name": "xdy", "age": 6}, {"name": "xfq", "age": 3}]
    result = sorted(l, key=lambda x: x["age"])
    print(result)
    

1. 閉包


  • 概念
    1. 在函數(shù)嵌套的前提下
    2. 內(nèi)層函數(shù)引用了外層函數(shù)的變量(包括參數(shù))
    3. 外層函數(shù),又把內(nèi)層函數(shù)當(dāng)做返回值進行返回
    4. 內(nèi)層函數(shù) + 所引用的外層變量缅刽,稱為閉包
    
  • 形式
    def outside(a):
        b = 10
    
        def inner():
            print(a)
            print(b)
        return inner
    
    result = outside(10)
    result()
    
  • 場景
    # 外層函數(shù),根據(jù)不同的參數(shù),來生成不同作用功能的函數(shù)
    def line_config(content, length):
        def line():
            print("-"*(length // 2) + content + "-"*(length // 2)) 
        return line
    
    line1 = line_config("秦子陽", 40)
    line1()
    line2 = line_config("小清新", 80)
    line2()
    
  • 注意
    1. 閉包中, 若要修改引用的外層變量, 需要使用 nonlocal 聲明變量; 
       否則當(dāng)做是閉包內(nèi), 新定義的變量
    
       def demo():
           num = 66
           def inner():
               nonlocal num
               num = 88
               print(num)
           print(num)
           return inner
       result = demo()
       result()
    
    2. 值捕獲 
       (1) 閉包在 "其被定義的上下文中" 捕獲變量侧馅;
       (2) 即使定義這些變量的 "原作用域已經(jīng)不存在"仿畸;
       (3) 閉包仍然可以在 "被調(diào)用時" "引用和修改這些值"
        
       def test():
           funcs = []
           for i in range(1, 4):
               def test2(num):
                   def inner():
                       print(num)
                   return inner
               funcs.append(test2(i))
           return funcs
    
       newFuncs = test()
       print(newFuncs)
    
       newFuncs[0]()
       newFuncs[1]()
       newFuncs[2]()
    

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末食棕,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子错沽,更是在濱河造成了極大的恐慌簿晓,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,265評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件千埃,死亡現(xiàn)場離奇詭異憔儿,居然都是意外死亡,警方通過查閱死者的電腦和手機放可,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,078評論 2 385
  • 文/潘曉璐 我一進店門谒臼,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人吴侦,你說我怎么就攤上這事屋休。” “怎么了备韧?”我有些...
    開封第一講書人閱讀 156,852評論 0 347
  • 文/不壞的土叔 我叫張陵劫樟,是天一觀的道長。 經(jīng)常有香客問我织堂,道長叠艳,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,408評論 1 283
  • 正文 為了忘掉前任易阳,我火速辦了婚禮附较,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘潦俺。我一直安慰自己拒课,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,445評論 5 384
  • 文/花漫 我一把揭開白布事示。 她就那樣靜靜地躺著早像,像睡著了一般。 火紅的嫁衣襯著肌膚如雪肖爵。 梳的紋絲不亂的頭發(fā)上卢鹦,一...
    開封第一講書人閱讀 49,772評論 1 290
  • 那天,我揣著相機與錄音劝堪,去河邊找鬼冀自。 笑死揉稚,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的熬粗。 我是一名探鬼主播搀玖,決...
    沈念sama閱讀 38,921評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼荐糜!你這毒婦竟也來了巷怜?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,688評論 0 266
  • 序言:老撾萬榮一對情侶失蹤暴氏,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后绣张,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體答渔,經(jīng)...
    沈念sama閱讀 44,130評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,467評論 2 325
  • 正文 我和宋清朗相戀三年侥涵,在試婚紗的時候發(fā)現(xiàn)自己被綠了沼撕。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,617評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡芜飘,死狀恐怖务豺,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情嗦明,我是刑警寧澤笼沥,帶...
    沈念sama閱讀 34,276評論 4 329
  • 正文 年R本政府宣布,位于F島的核電站娶牌,受9級特大地震影響奔浅,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜诗良,卻給世界環(huán)境...
    茶點故事閱讀 39,882評論 3 312
  • 文/蒙蒙 一汹桦、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧鉴裹,春花似錦舞骆、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,740評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至猖凛,卻和暖如春赂蠢,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背辨泳。 一陣腳步聲響...
    開封第一講書人閱讀 31,967評論 1 265
  • 我被黑心中介騙來泰國打工虱岂, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留玖院,地道東北人。 一個月前我還...
    沈念sama閱讀 46,315評論 2 360
  • 正文 我出身青樓第岖,卻偏偏與公主長得像难菌,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子蔑滓,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,486評論 2 348

推薦閱讀更多精彩內(nèi)容