Python函数细节:多数量参数、强制参数传递、返回多值、匿名/内联函数
生活随笔
收集整理的這篇文章主要介紹了
Python函数细节:多数量参数、强制参数传递、返回多值、匿名/内联函数
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1. 可接受任意數量參數的函數
- 接受任意數量的位置參數,使用參數*來解決
rest是由所有其他位置參數組成的元組。在代碼中把它當成了一個序列來進行后續的計算。
- 接受任意數量的關鍵字參數,使用參數**解決
2. 只接受關鍵字參數的函數
將強制關鍵字參數放到某個*參數或者單個*后面就能達到這種效果。
def minimum(*values, clip=None):m = min(values)if clip is not None:m = clip if clip > m else mreturn mprint( minimum(1, 5, 2, -5, 10) ) # >>> -5 print( minimum(1, 5, 2, -5, 10, clip=0) ) # >>> 0很多情況下,使用強制關鍵字參數會比使用位置參數表意更加清晰,程序也更加具有可讀性。
3. 返回多值的函數
為了能返回多個值,函數直接return一個元組就行了,需要了解到的是,這里是通過','來構造一個元組,元組與多個返回臨時變量對齊的過程可以借助元組解包理解。
def myfun():return 1, 2, 3a,b,c = myfun() print(a, b, c) # >>> a,b,c print(myfun()) # >>> (1, 2, 3)盡管myfun()看上去返回了多個值,實際上是先創建了一個元組然后返回的。 這個語法看上去比較奇怪,實際上使用的是逗號來生成一個元組,而不是用括號。當調用返回一個元組的函數的時候 ,通常會將結果賦值給多個變量,就像上面的那樣。
4. 定義匿名或者內聯函數
當一個函數非常短的時候,我們沒有必要使用def去定義一個函數,這時候可以通過內聯函數形式進行定義(lambda表達式)。
# 這種內聯函數的表達形式和定義的函數形式是一樣的 # def add(x, y): # return x+y add = lambda x, y : x+y print( add(2, 3) ) # >>> 5 print( add('hello', 'world')) # >>> helloworld需要注意的是:盡管lambda表達式允許定義簡單函數,但是它的使用是有限制的。 我們只能指定單個表達式,不能包含其他的語言特性(如多個語句、條件表達式、迭代以及異常處理等)。
博文參考《python3-cookbook》
總結
以上是生活随笔為你收集整理的Python函数细节:多数量参数、强制参数传递、返回多值、匿名/内联函数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 优秀行业网站建设5必备(上)
- 下一篇: websocket python爬虫_p