首頁 > 後端開發 > Python教學 > Python 函數中的單星號和雙星號 (*) 如何解壓縮參數?

Python 函數中的單星號和雙星號 (*) 如何解壓縮參數?

DDD
發布: 2024-12-20 11:08:09
原創
648 人瀏覽過

How Do Single and Double Asterisks (*) Unpack Arguments in Python Functions?

在Python 中使用 解包參數(雙星/星號)*

在Python 中,* 運算子在呼叫時解包參數中發揮著至關重要的作用函數。

單星 *:單星 (*) 將序列或集合解包為位置參數。例如,考慮以下函數:

def add(a, b):
    return a + b
登入後複製
下面的程式碼使用* 來解壓縮元組值:

values = (1, 2)
s = add(*values)
登入後複製
這相當於寫:

s = add(1, 2)
登入後複製

雙星**:雙星(**) 執行類似的操作字典,為命名參數提供值。考慮以下函數:

def sum(a, b, c, d):
    return a + b + c + d
登入後複製
使用** 解壓縮字典value2 會產生以下結果:

values2 = { 'c': 10, 'd': 15 }
s = add(**values2)
登入後複製
這相當於:

s = sum(a=1, b=2, c=10, d=15)
登入後複製

的組合:*兩者
* 可以在同一函數呼叫中同時使用。例如:

values1 = (1, 2)
values2 = { 'c': 10, 'd': 15 }
s = add(*values1, **values2)
登入後複製
這相當於:

s = sum(1, 2, c=10, d=15)
登入後複製

參數解包:除了解包參數之外,
* 也可用於函數中的參數解包定義。

    標示 * 的參數接收任意數量的位置參數作為元組。
  • 標示 ** 的參數接收所有關鍵字參數作為字典。
例如:

def add(*values):
    # ...

def get_a(**values):
    # ...
登入後複製

效能影響:使用
* 對效能的影響通常很小。解包操作涉及的開銷最小,且不會影響函數本身的效率。然而,過多的解包可能會降低程式碼的可讀性和可維護性。

以上是Python 函數中的單星號和雙星號 (*) 如何解壓縮參數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板