簡體   English   中英

我們如何從 args 和 kwargs 打印參數列表?

[英]How can we print the argument-list from args and kwargs?

假設我們有一個可變參數 function,例如:

def foo(*args, **kwargs):
    pass

我想編輯 foo,以便它打印參數列表。 例如,我們想要下面的代碼......

foo(98, 99, 100, a = 1, b = 2, c = 3)

... 打印...

98, 99, 100, a = 1, b = 2, c = 3   

這幾乎可以滿足您的要求:

def foo(*args, **kwargs):
    print(args + tuple('{} = {}'.format(key,val) for key,val in kwargs.items()))

以下似乎可以解決問題:

import itertools

rep_kwarg = lambda kwarg: kwarg[0] + " = " + str(kwarg[1])

def foo(*args, **kwargs):
    kwargs2 = map(rep_kwarg, kwargs.items())
    it_combo = itertools.chain(args, kwargs2)
    it_combo_str = map(str, it_combo)
    arg_list = ', '.join(it_combo_str)
    print("RESULT == ", repr(arg_list))


args = [98, 99, 100]
kwargs = {
    "a": 1,
    "b": 2,
    "c": 3
}
foo(*args, **kwargs)
foo(98, 99, 100, a = 1, b = 2, c = 3)

控制台 output 是:

RESULT ==  '98, 99, 100, a = 1, b = 2, c = 3'
RESULT ==  '98, 99, 100, a = 1, b = 2, c = 3'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM