python基礎之引用和匿名函數
a=1 #1 為對象, def func(x): print('x的地址{}'.format(id(x))) x=2 print('x的地址{}'.format(id(x))) pass # 調用函數 print('a的地址:{}'.format(id(a))) func(a)
# 不可變類型 a=1 #1 為對象, ##傳遞的是一個對象的引用,並不是一個值 def func(x): print('x的地址{}'.format(id(x))) x=2 print('x的地址{}'.format(id(x))) print(x) pass # 調用函數 print('a的地址:{}'.format(id(a))) func(a) print(a)
# 可變類型 # 可變函數 li=[] def testRenc(parms): li.append([1,2,3,4,5]) print(id(parms)) li.append([1,3,4,5]) pass print(id(li)) testRenc(li) print('外部的變量對象{}'.format(li))
# 匿名函數 # 語法: # lambda 參數1、參數2、參數3:表達式 # 特點 # 1.使用lambda關鍵字創建函數 # 2.沒有名字的函數 # 3.匿名函數冒號後面的表達式有且隻有一個,註意:是表達式而不是語句 # 4.匿名函數自帶return,而這個return的結果就是表達式計算後的結果 # 缺點 # lambda隻能是單個表達式,不是一個代碼塊,lambda設計就是為瞭滿足簡單的函數場景,僅僅能封裝有限的邏輯.復雜邏輯情況使用def標準函數邏輯,無法實現復雜邏輯
def computer(x,y): ''' 計算數據和 :param x: :param y: :return: ''' return x+y print(computer(10,20)) # 使用匿名函數 M=lambda x,y:x+y # 通過變量來調用匿名函數 print(M(23,19))
result=lambda a,b,c:abc
print(result(12,343,5))
總結
本篇文章就到這裡瞭,希望能夠給你帶來幫助,也希望您能夠多多關註WalkonNet的更多內容!
推薦閱讀:
- python基礎之函數的定義和調用
- 深入分析Python中Lambda函數的用法
- Python 面向切面編程 AOP 及裝飾器
- python教程之生成器和匿名函數
- python3中apply函數和lambda函數的使用詳解