日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

Python函数细节:多数量参数、强制参数传递、返回多值、匿名/内联函数

發布時間:2025/3/15 python 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python函数细节:多数量参数、强制参数传递、返回多值、匿名/内联函数 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1. 可接受任意數量參數的函數

  • 接受任意數量的位置參數,使用參數*來解決
# rest是由所有其他位置參數組成的元組 def avg(first, *rest):return ( first + sum(rest) ) / (1+len(rest))print(avg(1,2)) # >>> 1.5 print(avg(1,2,3,4)) # >>> 2.5

rest是由所有其他位置參數組成的元組。在代碼中把它當成了一個序列來進行后續的計算。

  • 接受任意數量的關鍵字參數,使用參數**解決
import htmldef make_element(name, value, **attrs):keyvals = [' %s="%s"' % item for item in attrs.items()]attr_str = ''.join(keyvals)element = '<{name}{attrs}>{value}</{name}>'.format(name=name,attrs=attr_str,value=html.escape(value))return element# 傳遞字典={'quantity':6, 'size':'large'} 到 **attrs # keyvals獲得列表 ['quantity="6"', 'size="large"'] # attr_str獲得字符串 quantity="6" size="large" print( make_element('item', 'Albatross', size='large', quantity=6) ) # >>> '<item quantity="6" size="large">Albatross</item>'

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函数细节:多数量参数、强制参数传递、返回多值、匿名/内联函数的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。