Python進階(args 和 kwargs)


感謝作者和譯者,向你們致敬,辛苦了!

文章地址:Python進階


args 和 kwargs


*args 是用來發(fā)送一個非鍵值對的可變數(shù)量的參數(shù)列表給一個函數(shù).
def test_var_args(f_arg, *argv):
    print("first normal arg:", f_arg)
    for arg in argv:
        print("another arg through *argv:", arg)

test_var_args('yasoob', 'python', 'eggs', 'test')

輸出內容:

first normal arg: yasoob
another arg through *argv: python
another arg through *argv: eggs
another arg through *argv: test



**kwargs 允許你將不定長度的鍵值對, 作為參數(shù)傳遞給一個函數(shù)。
def greet_me(**kwargs):
    for key, value in kwargs.items():
        print("{0} == {1}".format(key, value))

greet_me(name="yasoob")

輸出內容:

name == yasoob



使用 *args 和 **kwargs 來調用函數(shù)
def test_args_kwargs(arg1, arg2, arg3):
    print("arg1:", arg1)
    print("arg2:", arg2)
    print("arg3:", arg3)

args = ("two", 3, 5)
test_args_kwargs(*args)
print("---")
kwargs = {"arg3": 3, "arg2": "two", "arg1": 5}
test_args_kwargs(**kwargs)

輸出內容:

arg1: two
arg2: 3
arg3: 5
---
arg1: 5
arg2: two
arg3: 3



什么時候使用它們?

做測試時,可以把API調用替換成一些測試數(shù)據(jù)

import someclass

def get_info(self, *args):
    return "Test data"

someclass.get_info = get_info
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 〇、前言 本文共108張圖,流量黨請慎重! 歷時1個半月,我把自己學習Python基礎知識的框架詳細梳理了一遍。 ...
    Raxxie閱讀 19,567評論 17 410
  • 我要帶你流浪 看湖海山川 歷經(jīng)滄桑 也不忘飛翔 我要帶你去遠方 去往他鄉(xiāng) 懷抱自由 不枉時光 我要帶你歸家 看小橋...
    賞歡閱讀 266評論 0 0
  • 【思念的距離】 用高山 用湖泊 用塵土飛揚 丈量思念能到達的距離 愛迫在眉睫 你微笑醒來 群山環(huán)繞你的故鄉(xiāng) 往事隨...
    卻悔閱讀 541評論 0 4
  • 溫度宜人,陽光正好,如果你缺一個家,如果你在這個城市沒有依托,那么你可以找我,我是鏈家人,我在等你!?。?/div>
    遠方有你灬閱讀 219評論 0 0

友情鏈接更多精彩內容