python之閉包
1 閉包概念
綁定了函數內部引用的所有變量,把它引用的東西都放在一個上下文中“包”了起來
2 閉包的Demo理解
需求:比如我們要實現(xiàn)2個函數,每個函數有個參數,然后現(xiàn)在需要實現(xiàn)這2個函數參數的相加功能
1) 不用閉包python普通實現(xiàn)
#!/usr/bin/env python
def plus_first(first):
return first;
def plus_second(second):
return second;
if __name__ == "__main__":
first = plus_first(150);
second = plus_second(200);
result = first + second;
print result
結果:350
2) 用閉包python實現(xiàn)
#!/usr/bin/env python
def plus_first(first):
def plus_second(second):
return first + second;
return plus_second;
if __name__ == "__main__":
plus_second = plus_first(100);
result = plus_second(200);
print result
結果:400
上面的plus_first就是一個閉包,plus_second可以理解為一個匿名函數
3) 用lambda表達式實現(xiàn)
#!/usr/bin/env python
def plus_first(first):
return lambda second1:first + second1
if __name__ == "__main__":
plus_second = plus_first(200);
result = plus_second(200);
print result
結果:400
總結:
通過閉包可以將n個函數相互連接起來,閉包是函數式編程的靈活、是函數式編程的核心。
作者:chen.yu
深信服三年半工作經驗,目前就職游戲廠商,希望能和大家交流和學習,
微信公眾號:編程入門到禿頭 或掃描下面二維碼
零基礎入門進階人工智能(鏈接)