如何获取 Python 函数中命名参数的字典

99l*_*ves 4 python parameters dictionary

我知道人们通常会用 给函数赋予任意数量的 kwargs **kwargs,然后将它们作为字典访问;但是,我想显式指定我的函数 kwargs,但仍然能够将它们作为字典访问。

这是因为我希望我的函数仅接收特定的kwargs,但我需要对所有这些函数执行相同的操作,我可以将其放入循环中for

def my_func(kwarg1=None, kwarg2=None, kwarg3=None):
    kwargs = {} # After somehow getting all my kwargs into a dictionary

    for k in kwargs:
        # Do my operation
Run Code Online (Sandbox Code Playgroud)

我不希望我的函数接收任意数量的kwargs,但我确实kwargs想在字典中访问 my 。

mgi*_*son 5

locals假设你没有位置参数,如果你把它放在函数的顶部,你可以通过以下方式访问你的 kwargs :

def my_func(kwarg1=None, kwarg2=None, kwarg3=None):
    # Don't add any more variables before the next line!
    kwargs = dict(locals())

    for k in kwargs:
        # Do my operation
Run Code Online (Sandbox Code Playgroud)

这很hacky(充其量是),最好将其拼写出来:

kwargs = {'kwarg1': kwarg1, ...}
Run Code Online (Sandbox Code Playgroud)