相关疑难解决方法(0)

获取关键字参数实际上传递给Python方法

我梦想着一个带有显式关键字args的Python方法:

def func(a=None, b=None, c=None):
    for arg, val in magic_arg_dict.items():   # Where do I get the magic?
        print '%s: %s' % (arg, val)
Run Code Online (Sandbox Code Playgroud)

我想得到一个字典,只有调用者实际传入方法的那些参数,就像**kwargs,但我不希望调用者能够传递任何旧的随机args,不像**kwargs.

>>> func(b=2)
b: 2
>>> func(a=3, c=5)
a: 3
c: 5
Run Code Online (Sandbox Code Playgroud)

所以:有这样的咒语吗?在我的情况下,我碰巧能够将每个参数与其默认值进行比较以找到不同的参数,但是当你有九个参数时,这有点不雅并且变得单调乏味.对于奖励积分,提供一个咒语,即使调用者传递了一个分配了默认值的关键字参数,也可以告诉我:

>>> func(a=None)
a: None
Run Code Online (Sandbox Code Playgroud)

调皮!

编辑:(词法)函数签名必须保持不变.它是公共API的一部分,显式关键字args的主要价值在于它们的文档值.只是为了让事情变得有趣.:)

python arguments keyword

23
推荐指数
3
解决办法
8498
查看次数

标签 统计

arguments ×1

keyword ×1

python ×1