Python: 如何傳遞不定長度參數到function中? *args ; **kwargs

加入好友
加入社群
Python: 如何傳遞不定長度參數到function中? *args ; **kwargs - 儲蓄保險王

code:

# -*- coding: utf-8 -*-
"""
Created on Sun Feb 11 14:56:32 2024

@author: SavingKing
"""

tup = ("a","b")

def get_tuple(*args):
    print(type(args))
    for ele in args:
        print(ele)

get_tuple(*tup)

輸出結果:

Python: 如何傳遞不定長度參數到function中? *args ; **kwargs - 儲蓄保險王

在這段Python程式碼中,我們透過一個簡單的範例來探討如何使用*args來處理函式參數,特別是當將一個元組解包為函式的位置參數時。

程式碼解析:

  1. 定義元組
    • 首先,我們定義了一個名為tup的元組,包含兩個字符串元素:”a”和”b”。
  2. 定義函式
    • 接著,我們定義了一個名為get_tuple的函式,它使用*args作為參數。在Python中,*args用於函式定義時,允許函式接收任意數量的位置參數。在函式內部,這些參數會被當作一個元組(tuple)處理。
  3. 函式內的處理
    • get_tuple函式內部,我們首先印出args的類型,這會顯示<class 'tuple'>,證明args是一個元組。
    • 然後,我們遍歷這個元組,並印出每個元素。
  4. 函式的呼叫
    • 在呼叫get_tuple函式時,我們使用了*tup語法。這意味著tup元組中的元素被解包成位置參數,傳遞給get_tuple函式。因此,get_tuple函式接收到的是tup中的每個元素作為獨立的參數。

解釋:

這段程式碼演示了如何使用*args在函式中接收和處理任意數量的位置參數。當get_tuple(*tup)被呼叫時,*tup語法將元組tup中的元素解包,並將它們作為獨立的位置參數傳遞給get_tuple函式。在函式內部,這些參數作為元組args處理,證明了Python中使用*args來接收位置參數的靈活性和強大功能。

這種方法在需要將一組數據或值作為獨立參數傳遞給函式,而又不想手動列出每個參數時非常有用。透過*args,我們可以輕鬆地處理不定長度的參數列表,使函式定義更加靈活和通用。

推薦hahow線上學習python: https://igrape.net/30afN

在Python中,kwargs(關鍵字參數)是一種特殊的參數,它允許函數接收任意數量的關鍵字參數。這意味著你可以傳遞一個字典給函數,並在函數內部訪問這個字典的鍵值對。kwargs在函數定義中作為參數時,表示該函數可以接收任意數量的關鍵字參數。在函數內部,kwargs是一個字典(dict),包含所有通過關鍵字方式傳入的參數。

kwargs的使用 當你需要在一個函數中處理帶有鍵名的參數時,kwargs非常有用。這使得函數能夠以更靈活的方式處理不同的輸入選項。

示例:使用**kwargs接收和處理字典參數
以下是一個示例,展示了如何定義一個接收任意關鍵字參數的函數,並在函數內部遍歷這些參數。

def print_info(**kwargs):
    for key, value in kwargs.items():
        print(f"{key}: {value}")

# 使用字典解包调用函数
info_dict = {'name': 'John', 'age': 30, 'city': 'New York'}
print_info(**info_dict)

輸出結果:

Python: 如何傳遞不定長度參數到function中? *args ; **kwargs - 儲蓄保險王

這個輸出顯示了函數如何處理並打印出傳入的每個鍵值對。使用**kwargs使得函數能夠以靈活的方式接收和處理帶有鍵名的參數,這在處理配置選項、屬性或其他需要靈活參數的場景中非常有用。

字典解包
在上面的示例中,**info_dict用於在函數調用時將字典解包為關鍵字參數。這是一種將字典的鍵值對直接作為函數的關鍵字參數傳遞的便捷方式,而不需要手動列出每個參數及其值。這種技術在處理大量參數或動態構建參數集時特別有用。

推薦hahow線上學習python: https://igrape.net/30afN

加入好友
加入社群
Python: 如何傳遞不定長度參數到function中? *args ; **kwargs - 儲蓄保險王

儲蓄保險王

儲蓄險是板主最喜愛的儲蓄工具,最喜愛的投資理財工具則是ETF,最喜愛的省錢工具則是信用卡

You may also like...

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *